0

ウェブカメラから 1 つのスナップショットを取得する必要があります。このタスクには SimpleCV を選択します。

今、私は単一の画像を取得して表示しようとしています:

from SimpleCV import Camera


cam = Camera()
img = cam.getImage()
img.show()

しかし、私は黒い画像しか見ません。現時点ではカメラの準備ができていないと思います。time.sleep(10)前に電話すればcam.getImage()すべてうまくいくからです。

これの正しい方法は何ですか?ありがとうございました!

4

4 に答える 4

1

この同じ問題に遭遇し、次の回避策を思い付きました。基本的には画像を取得し、中央のピクセルをテストして黒 (0,0,0) かどうかを確認します。そうであれば、1 秒待ってから再試行します。

import time
from SimpleCV import Camera
cam = Camera()
r = g = b = 0
while r + g + b < 0.01:
    img = cam.getImage()
    r, g, b = img[img.width/2, img.height/2]
    print("r: {} g: {} b: {}".format(r,g,b))
    time.sleep(1)
img.save(file_name)
于 2014-10-13T20:55:55.327 に答える
0

問題は、スクリプトが終了したときに、カメラ オブジェクトが他のプログラムの Web カメラを解放していないように見えることです。スクリプトの実行を待つと、Windows がスクリプトを解放し (おそらく?)、再び機能するようになります。これを使用すると、古いスクリプトは依然として Web カメラを所有していると認識し、黒く表示されます。とにかく、ここでの解決策はうまくいくようです。スクリプトの最後に「del cam」を追加すると、カメラ オブジェクトが消えて、カメラを再び使用できるようになります。

于 2013-11-02T05:07:10.583 に答える
0

SimpleCVからこれを試してください
import Camera cam = Camera(0) while True: img = cam.getImage() img.show()

于 2015-05-02T17:32:29.997 に答える