(接標題)libv4l2: error setting pixformat: Device or resource busy的錯誤;
----------------------------------------------------------------------------------分割線----------------------------------------------------------------------------------------
最近用樹莓派做點小項目,用Python跑OpenCV調用攝像頭時常常出現一個錯誤:
V4L2: Pixel format of incoming image is unsupported by OpenCV
以及
libv4l2: error setting pixformat: Device or resource busy
的錯誤,可把我煩的不要不要的,潛下心來仔細思考了一下,感覺是我兩次調用攝像頭的時間太過於迅速,上一次調用的攝像頭還沒有release掉,就又開始了下一次的調用。(因爲存在多重循環體的原因,循環體代碼又相互獨立,於是存在攝像頭多次調用)。想着在release之後來個小延時,卻有時候還是會出現相同的問題…難度做研究還是看人品的???這可不能算科學哎、
思考了許久,發現這個錯誤主要是由於以下兩個原因造成的:
一、便是由於攝像頭重複調用了,檢查程序是否沒有release或者stop掉攝像頭,卻又開始了下一次的調用。
二、是因爲1.compat.so沒有加載,解決途徑如下:
1.執行以下命令,來確認1.compat.so所在路徑
$ find /usr/lib -name v4l1compat.so
2.載入以上路徑下的1.compat.so文件,根據所得到的路徑輸入以下命令:
$ export LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libv4l/v4l1compat.so
完成之後,再運行之前的出錯的程序即可。