无论是IVideoCapture还是CvCapture,在Windows下它们默认的首选都是微软提供的一套在Windows平台上进行流媒体处理的开发包:DShow(即DirectShow)。
我是在设计UI界面,将封装好的程序从win10放到win7出现的问题。
因此,针对打开摄像头出现的问题:
Failed to set mediaType (stream 0, (640x480 @ 30) MFVideoFormat_RGB24(unsupported media type)
可以通过添加cv2.CAP_DSHOW语句解决。
原语句为:
self.CAM_NUM = 0
self.cap = cv2.VideoCapture(self.CAM_NUM) # 屏幕画面对象
更改后为:
self.CAM_NUM = 0
self.cap = cv2.VideoCapture(self.CAM_NUM, cv2.CAP_DSHOW) # 屏幕画面对象
注意:检查代码中所有该语句,都需要更改。