HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP解决方法

问题:

       最近在研究使用单目摄像头获取深度的问题,在用python写了个用摄像头拍照的程序后,运行,出现了如标题所示的报错:

HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in imshow, file /home/pi/Documents/opencv-2.4.13/modules/highgui/src/window.cpp, line 261
terminate called after throwing an instance of 'cv::Exception'
  what():  /home/pi/Documents/opencv-2.4.13/modules/highgui/src/window.cpp:261: error: (-215) size.width>0 && size.height>0 in function imshow

在该博客中查到了解决办法:HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP错误解决方法

解决办法:

1.安装如下依赖:

sudo apt-get install libv4l-dev 

sudo apt-get install v4l2ucp

sudo apt-get install v4l-utils


2.安装如下依赖后重新安装opencv

安装opencv参照此篇文章:Opencv 2.4.9在Ubuntu下的配置安装

在曾经安装过opencv的电脑上,只需重新编译安装opencv即可,进入opencv的release文件夹,执行以下步骤:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

make 

sudo make install

sudo ldconfig -v

重新安装opencv后,程序运行成功。


出现以上问题的原因是:

val/v4l2等必要的依赖库安装在opencv之后,opencv库编译时没有编译进去,因此在重新安装依赖后,要重新编译opencv

猜你喜欢

转载自blog.csdn.net/m0_37811342/article/details/80227817