在樹莓派上運行在windows上正確的程序, 報錯:
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 Aborted
解決方法:
方法一: 安裝v4l2ucp, v4l-utils 和 libv4l-dev. 對我來說沒用。
方法二: 在視頻imshow圖像前,增加判斷語句
while(true){ capture >>Image; if(!Image.empty()){ imshow("Test",Image); imwrite("test.jpg",Image); } if(waitKey(10) >= 0)break; }
然后, 只報錯第一行, 但是程序可以正常運行。
之后,有出現了這個問題,仔細查閱,發現原因為
val/v4l2等必要的依賴庫安裝在opencv之后,opencv庫編譯時沒有編譯進去
因此,應在安裝了依賴庫后,重新安裝opencv,重新cmake、make、makeinstall等。