OpenCV能以MJPEG的格式读取摄像头数据吗
1个回答
展开全部
不太懂linux下的情况,大概了解windows下的情况,估计是类似的。
调用OpenCV的cv::VideoCapture打开摄像头,内部调用的是Direct Show接口(等效于Linux下的v4l2吧),先查找当前电脑已经连接的摄像头设备,然后以cv::VideoCapture构造函数中传入的整数作为下标,访问对应的摄像头,然后直接选取默认的摄像头输出的分辨率,码率和编码格式等,输出摄像头数据。
其实不少摄像头都能够输出多种分辨率,多种码率和多种编码格式的数据,OpenCV为了用户的使用方便把这些操作都简化了。
如果想对摄像头调用进行定制化,可能需要直接调用v4l2进行操作。或者调用FFmpeg进行。
另外,题主提到60fps的是MJPEG格式的,为了获取原始的YUV或者BGR的数据,还需要进行解码和颜色空间转换,FFmpeg是能够做到这些的,干脆直接用FFmpeg算了。
调用OpenCV的cv::VideoCapture打开摄像头,内部调用的是Direct Show接口(等效于Linux下的v4l2吧),先查找当前电脑已经连接的摄像头设备,然后以cv::VideoCapture构造函数中传入的整数作为下标,访问对应的摄像头,然后直接选取默认的摄像头输出的分辨率,码率和编码格式等,输出摄像头数据。
其实不少摄像头都能够输出多种分辨率,多种码率和多种编码格式的数据,OpenCV为了用户的使用方便把这些操作都简化了。
如果想对摄像头调用进行定制化,可能需要直接调用v4l2进行操作。或者调用FFmpeg进行。
另外,题主提到60fps的是MJPEG格式的,为了获取原始的YUV或者BGR的数据,还需要进行解码和颜色空间转换,FFmpeg是能够做到这些的,干脆直接用FFmpeg算了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询