Opencv 在Win7下以MJPG初始化摄像头失败
opencv吧
全部回复
仅看楼主
level 1
xxjohn2009 楼主
cap.open(glb_nCamIndex);
bool bRet = false;
bRet = cap.set(CV_CAP_PROP_FPS, 15);//帧率
bRet = cap.set(CV_CAP_PROP_FOURCC, VideoWriter::fourcc('M', 'J', 'P', 'G'));// # 视频流格式
bRet = cap.set(CV_CAP_PROP_FRAME_WIDTH, g_nCamWidth);//设置分辨率
bRet = cap.set(CV_CAP_PROP_FRAME_HEIGHT, g_nCamHeight);
//获取帧率和图像格式
double nFPS = cap.get(CV_CAP_PROP_FPS);//帧率
DebugMsg((NULL, "[%08d]<CamDll>帧率:%3.2f\n", GetLogTime(), nFPS));
DWORD nFourCC = cap.get(CV_CAP_PROP_FOURCC);//格式
DebugMsg((NULL, "[%08d]<CamDll>格式:%0.8X\n", GetLogTime(), nFourCC));
这段代码,在Win10下执行正常,获取的帧率为15,图像格式为:47504A4D 'GPJM',图像正常
但在Win7下就初始化失败了。 Win7下,获取到的帧率为0,图像格式为00000000, 判断cap.isOpened() 返回false。
如果把设置视频流格式放在分辨率设置之后。 Win10和Win7能够获取图像,但是按YUY2格式获取图像。
注图像宽度高度为3264x 2448, YUY2格式能够工作,但只有2帧/秒。 所以需要MJPG格式,但Win7失败
请知道原因的大神不吝回复,谢谢
2021年09月01日 04点09分 1
level 1
xxjohn2009 楼主
补充:
使用Opencv340:
1、Win10下,将设置MJPG格式放在设置分辨率之后,能打开,但是按YUY2格式打开。 放在之前是成功的,按默认MJPG格式。
Win7将设置MJPG格式放在设置分辨率之后,能打开,但是按YUY2格式打开。放在之前无效,cap.isOpened()返回失败。
使用Opencv453:
1、Win10下,将设置MJPG格式放在设置分辨率之后,是成功的。放在之前无效,按默认YUY2格式。
Win7将设置MJPG格式放在设置分辨率之后,是失败的,cap.isOpened()返回失败。放在之前无效,按默认YUY2格式打开。
2021年09月01日 07点09分 2
level 1
xxjohn2009 楼主
2021年12月02日 03点12分 4
level 1
xxjohn2009 楼主
Win7安装解码器就可以以MJPG打开了
2021年12月02日 03点12分 5
1