近期要做一个下位机上发图像数据给上位机的任务,调试时自己写了一个客户端获取笔记本电脑的摄像头视频数据传输给服务器,然后服务器端显示摄像头视频数据。结果运行时发现客户端报错,视频窗口闪退。
一般获取摄像头图像数据的代码如下:
capture = cv.VideoCapture(0)
但是运行会报错如下:
[ WARN:0] global C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-52oirelq\opencv\modules\videoio\src\cap_msmf.cpp (677) CvCapture_MSMF::initStream Failed to set mediaType (stream 0, (640x480 @ 30) MFVideoFormat_RGB24(codec not found)
网上搜索了一下后发现只要对上述代码稍作修改即可
# 建立图像读取对象
capture = cv.VideoCapture(0,cv.CAP_DSHOW) #更改API设置
此处0代表笔记本自带的摄像头,如果有外接摄像头则可以选填1、2等。