c++ - 将帧速率提高到 30 fps 并从 AVT GigE 相机获取 bayerrg8

标签 c++ linux camera gige-sdk

我正在使用 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/

相关文章:

c++ - 使用模板重载 << 运算符来更改输出

python - 编写非常简单的 irc 机器人时从哪里开始?

Linux 不显示添加的组

c++ - 我如何旋转glm相机

iphone - 配置 UIImagePickerController 的帧大小

c++ - QTableWidget更新项

c++ - 链接列表 - 几乎完成,但在某处仍然存在小问题。需要帮助

c++ - 从已编译的可执行文件中获取编译器选项?

linux - 如何避免 sudo 字,用于由非 root 用户执行更高权限的命令

android - 将图片添加到图库 - Android