我正在使用 ubuntu,并且我有 AVT GigEvision 相机。该相机的Linux环境SDK可以从[Linux_SDK库链接] http://www.alliedvisiontec.com/us/products/legacy.html下载。 我能够以每秒 1 帧的速度获取图像,因为它是一些默认值,但如何开始每秒接收更多帧。 我不确定它输出的是bayerrg8格式还是mono 8格式,目前我可以看到黑白图片。我不确定来自相机的数据是否是 bayer8 并且驱动程序自动将其转换为 mono8 或者来自相机的数据是 mono8 并且我需要将其转换为 bayer8。另外,如果是的话,我无法找到任何从 mono8 转换为 bayerrg8 的特定函数。
最佳答案
设置帧速率
要更改 GigE Vision 相机上的帧速率,您需要设置名为 AcquisitionFrameRate
的参数。这是标准参数,所有 GigE Vision 相机都必须支持。就 AVS SDK 而言,您可以这样做:
err = PvAttrFloat32Set(handle, "AcquisitionFrameRate", 30.0);
确保使用 PvAttrRangeFloat32()
检查相机支持的帧速率。
设置像素格式
名为PixelFormat
的枚举功能用于控制相机的输出像素格式。有 4 种不同的 8 位拜耳格式:BayerBG8、BayerGB8、BayerGR8 和 BayerRG8。您的相机可能只支持其中之一或根本不支持。使用 PvAttrRangeEnum(handle, "PixelFormat", ...)
获取支持的像素格式列表。然后您可以设置它:
err = PvAttrEnumSet(handle, "PixelFormat", "BayerBG8");
相机不太可能以一种格式传输像素,然后将其转换为另一种格式,因为这会违反 GigE Vision 标准。很可能您的像素格式默认设置为 Mono8
。
使用 GigE Vision 相机四处走动
为了了解您可以设置哪些类型的其他参数名称以及它们如何工作,您需要阅读相机的文档(如果有)。否则,您可以从相机本身了解它,使用 PvAttrList()
调用来获取支持的功能列表,然后使用 GenICam Standard Features Naming Convention描述特定功能预期行为方式的文档。
关于c++ - 将帧速率提高到 30 fps 并从 AVT GigE 相机获取 bayerrg8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22676675/