Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将帧速率提高到30 fps,并从AVT GigE摄像头获得RG8_C++_Linux_Camera_Gige Sdk - Fatal编程技术网

C++ 将帧速率提高到30 fps,并从AVT GigE摄像头获得RG8

C++ 将帧速率提高到30 fps,并从AVT GigE摄像头获得RG8,c++,linux,camera,gige-sdk,C++,Linux,Camera,Gige Sdk,我正在使用ubuntu,我有AVT GigEvision摄像头。可从[linux_SDK库链接]下载此摄像头的linux SDK环境。 我能够以每秒1帧的速度获取图像,因为这是一些默认值,但如何开始每秒接收更多帧。 我不确定它是输出RG8格式还是Mono8格式,目前我可以看到一张黑白照片。我不确定来自摄像机的数据是bayer8,司机自动将其转换为mono8,还是来自摄像机的数据是mono8,我需要将其转换为bayer8。如果是,我也找不到任何特定的函数来从mono8转换为BayerG8 设置帧速

我正在使用ubuntu,我有AVT GigEvision摄像头。可从[linux_SDK库链接]下载此摄像头的linux SDK环境。 我能够以每秒1帧的速度获取图像,因为这是一些默认值,但如何开始每秒接收更多帧。 我不确定它是输出RG8格式还是Mono8格式,目前我可以看到一张黑白照片。我不确定来自摄像机的数据是bayer8,司机自动将其转换为mono8,还是来自摄像机的数据是mono8,我需要将其转换为bayer8。如果是,我也找不到任何特定的函数来从mono8转换为BayerG8

设置帧速率 要更改GigE Vision摄像头上的帧速率,您需要设置名为
AcquisitionFrameRate
的参数。这是标准参数,必须得到所有GigE Vision摄像头的支持。就AVS SDK而言,您可以这样做:

err = PvAttrFloat32Set(handle, "AcquisitionFrameRate", 30.0);
确保使用
pvattrangefloat32()
检查相机支持的帧速率

设置像素格式 名为
PixelFormat
的枚举功能用于控制相机的输出像素格式。有4种不同的8位拜耳格式:拜耳BG8、拜耳GB8、拜耳GR8和拜耳RG8。您的相机可能只支持其中一个或根本不支持。使用
PvAttrRangeEnum(句柄,“PixelFormat”,…)
获取支持的像素格式列表。然后可以将其设置为:

err = PvAttrEnumSet(handle, "PixelFormat", "BayerBG8");
摄像机不太可能以一种格式传输像素,然后再将其转换成另一种格式,因为这违反了GigE视觉标准。默认情况下,您很可能将像素格式设置为
Mono8

使用GigE视觉摄像头四处走动
为了了解您可以设置哪些类型的其他参数名称以及它们如何工作,您需要阅读相机的文档(如果有的话)。否则,您可以从相机本身学习,使用
PvAttrList()
调用获取支持功能的列表,然后使用描述特定功能预期行为的文档。

非常感谢。我正在使用Qt应用程序显示图像。它可以显示这些格式[格式单声道、格式单声道、格式索引8、格式RGB32、格式ARGB32、格式ARGB32、格式ARGB32、格式预乘、格式RGB16、格式ARGB8565、格式预乘、格式RGB666、格式ARGB6666、格式预乘、格式RGB555、格式ARGB8555、格式RGB888、格式RGB444、格式预乘]我的相机可以输出mono8、mono16、bayer8、baer16、rgb24、brg24、Yuv411、Yuv422、Yuv444、Rgba32、Bgra32、Rgb48、mono12packed。因此,我找不到任何兼容的格式对。我尝试了rgb24 frm camera n rgb888 4 display,不工作。我也可以通过设置来增加帧速率,但是如何处理它,因为如果我只增加帧速率,一些帧开始下降,我开始出现错误16(即超时错误,我使用的是imageviewer.h示例库)。设置帧速率30是否意味着在camera.frames.imagebuffer将以每秒30次的速度更改?如果我尝试,会出现黑屏,camera out Rgb24和qtdisplay Rgb888。另外,当我尝试设置相机输出Brga32或这些4字节长度时,我会出现内存不足的错误。QT图像格式RGB888听起来与rgb24兼容,QT的ARGB32也与GEV的rgba32匹配。所以这些案例需要调试。但是,当您想要使用高帧速率时,从相机中取出RGB图像并不是最佳选择。根据您的帧大小,每秒30帧的RGB帧很容易超过1GB/s通道。更好的选择是使用拜耳格式,并使用OpenCV
cvtColor()
将其转换为客户端站点上的RGB。每秒30帧的帧速率意味着您的内部camera.frames.imagebuffer将每秒更新30次。谢谢,我不能使用ARGB32格式,因为在这种情况下,它会引发内存错误。好的,现在我将只从相机中获取bayer8数据,并使用Qt-side在rgb中进行转换。我使用PvAttrFloat32Set函数将帧速率设置为30。但当我运行它显示帧丢失。我是否需要将相机的更多设置(如aquisitionmode)更改为单帧或连续,以提高帧速率或任何pckt大小?这是我的文件,我正在其中设置内容。请检查它和一些关于frmrate的建议?为什么它被否决了?