環境(version)
Opencv:3.2.1
python:3.7
raspberrypi:zero
webカメラ:bufflo
したいこと
単純にカメラデバイスで画像をとり画像を保存したいだけです。
コード
これだけ。opencvのコードはこれだけなのか....
(opencv-camera.py)
import cv2 # open camera device camera = cv2.VideoCapture(0) # get image _, frame = camera.read() # save image cv2.imwrite('test-opencv.jpg', frame)
エラー文
pi@raspberrypi:~/python_file/opencv $ python3 opencv-camera.py select timeout VIDIOC_DQBUF: Resource temporarily unavailable
VIDIOC_DQBUF: リソースが一時的に利用できません。
どういうことだろう。
いくつか調べるとカメラが認識されていないことが原因か?と思ったので
いくつか試したこと
・カメラの認識は?
pi@raspberrypi:~/python_file/opencv $ lsusb Bus 001 Device 002: ID 0411:0260 BUFFALO INC. (formerly MelCo., Inc.) Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
しっかりバッファロー製品が認識されているので大丈夫そう
・opencv以外でのカメラの動作は?
ここではfswebcamをつかいました。
pi@raspberrypi:~/python_file/opencv $ fswebcam test.jpg --- Opening /dev/video0... Trying source module v4l2... /dev/video0 opened. No input was specified, using the first. Adjusting resolution from 384x288 to 352x288. --- Capturing frame... Captured frame in 0.00 seconds. --- Processing captured image... Writing JPEG image to 'test.jpg'.
しっかりと同じフォルダの中にtest.jpgが保存されたのでカメラ自体は大丈夫そう。
まとめ
以上のことを確認してみましたがどこが原因でどこを対処したらいいのかわからないです。opencvはしっかりインストールされていますし。
opencv側とカメラとの間に何があったのか...
特に変な操作はしていないはずなので、どうしたものかわかりません。
もし、お時間があり、このような内容に精通した方がいれば、このラズパイでopencvで画像をとってから保存し、確認できるという一連の流れを達成するような解決策を教えていただけないでしょうか。
よろしくお願いいたします。
あなたの回答
tips
プレビュー