OpenCV 3.0中Highgui.CV_CAP_PROP_FRAME_HEIGHT代码适配问题咨询
解决OpenCV 3.0中VideoCapture分辨率设置的适配问题
嘿,这个适配坑我当初升级OpenCV3的时候也踩过!你的问题核心是OpenCV3对模块结构做了重构,原来Highgui里的视频捕获相关常量被迁移到新的模块里了,具体修改方案如下:
问题原因
OpenCV 3.0将原Highgui模块的功能拆分到了多个新模块中,其中视频捕获的属性常量(比如分辨率设置)从Highgui类迁移到了Videoio类,并且去掉了常量名里的CV_前缀。
修改后的代码(Java版本)
首先确保你已经导入了org.opencv.videoio.Videoio类,然后把代码改成这样:
VideoCapture webcam = new VideoCapture(0); webcam.set(Videoio.CAP_PROP_FRAME_HEIGHT, 768); webcam.set(Videoio.CAP_PROP_FRAME_WIDTH, 1024);
额外提示
如果设置完分辨率后发现实际获取的帧尺寸不对,大概率是你的摄像头不支持1024x768这个分辨率。可以先通过下面的代码查看摄像头支持的实际分辨率:
double actualWidth = webcam.get(Videoio.CAP_PROP_FRAME_WIDTH); double actualHeight = webcam.get(Videoio.CAP_PROP_FRAME_HEIGHT); System.out.println("实际分辨率: " + actualWidth + "x" + actualHeight);
然后换成摄像头支持的分辨率(比如常见的640x480、1280x720等)即可。
内容的提问来源于stack exchange,提问作者Chati
相关产品推荐
相关产品推荐

