Python3でOpenCVを使ったアプリの開発を行なっています。
やっていることはUSBカメラから画像を取得する一般的な手法です。
カメラ画像を取得して画像解析を行うプログラムですが、数時間動かしていると突然画像が真っ暗になります。
最初は画像解析の部分を疑っていたのですが、調査をするうちに cap.read() まわりに問題があるようです。
cap.read() の部分ですが、この時一緒に取得できるフラグも true になっています。
わかる方がいらっしゃれば、ご教授願います。
Python3
1# カメラをキャプチャする 2cap = cv2.VideoCapture(cam_no) 3 4# 取れてるかチェック 5ret, test = cap.read() 6 7while True: 8 # カメラから画像を取得 9 # retは画像を取得成功フラグ 10 ret, image = cap.read() 11 12 # 画像が取得できない場合はスキップ 13 if ret: 14 15 # モード取得 16 mode = self.get_mode(line_id) 17 18 try: 19 # 画像を解析(別のファンクション) 20 self.analyze_image(line_id, 3, image) 21 22 except Exception as e: 23 print ('analyze error: ' + str(e)) 24 25 26 # FPSを調整 27 time.sleep(CONFIG.CAPTURE_INTERVAL)
回答1件
あなたの回答
tips
プレビュー