前提・実現したいこと
PiCameraを使いたく、簡単なテスト(現在の画角の表示、フレーム数の表示、動画の撮影)を行ってみたところ、
Backend terminated or disconnected. Use 'Stop/Restart' to restart.
と表示されてちゃんと動きません。
どこか間違えているか教えていただけませんか。
発生している問題・エラーメッセージ
Python 3.7.3 (/usr/bin/python3) >>> %cd /home/sktaro/Documents/python_scripts >>> %Run camera_test.py start Backend terminated or disconnected.Fatal Python error: Segmentation fault Current thread 0xb6f238e0 (most recent call first): File "/usr/lib/python3/dist-packages/picamera/mmalobj.py", line 1331 in _get_framesize File "/usr/lib/python3/dist-packages/picamera/mmalobj.py", line 1325 in __repr__ File "/usr/lib/python3/dist-packages/thonny/backend.py", line 864 in export_value File "/usr/lib/python3/dist-packages/thonny/backend.py", line 880 in export_variables File "/usr/lib/python3/dist-packages/thonny/backend.py", line 927 in _export_stack File "/usr/lib/python3/dist-packages/thonny/backend.py", line 1027 in _prepare_user_exception File "/usr/lib/python3/dist-packages/thonny/backend.py", line 1218 in wrapper File "/usr/lib/python3/dist-packages/thonny/backend.py", line 1259 in execute_source File "/usr/lib/python3/dist-packages/thonny/backend.py", line 815 in _execute_source File "/usr/lib/python3/dist-packages/thonny/backend.py", line 801 in _execute_file File "/usr/lib/python3/dist-packages/thonny/backend.py", line 403 in _cmd_Run File "/usr/lib/python3/dist-packages/thonny/backend.py", line 204 in handle_command File "/usr/lib/python3/dist-packages/thonny/backend.py", line 146 in mainloop File "/usr/lib/python3/dist-packages/thonny/backend_launcher.py", line 87 in <module> Use 'Stop/Restart' to restart.
該当のソースコード
import cv2 import numpy as np import matplotlib.pyplot as plt import pandas as pd import picamera import picamera.array from sklearn.cluster import KMeans def main() : with picamera.PiCamera() as camera: with picamera.array.PiRGBArray(camera) as stream: camera.resolution = (1920, 1088)#重かったら落とす(1280, 720),(640, 480) # 撮影フレーム数の表記用 frame_count = 0 # 記録動画準備 fps = 30 w = 1920 h = 1088 fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v') # 動画保存時のfourcc設定(mp4用) video = cv2.VideoWriter('video.mp4', fourcc, fps, (w, h)) while True: frame_count += 1 camera.capture(stream, 'bgr', use_video_port=True) frame = stream.array cv2.putText(frame, str(frame_count), (10, 50), cv2.FONT_HERSHEY_PLAIN, 3, (255, 255, 255), 3, cv2.LINE_AA) cv2.imshow('camera', frame) video.write(frame) stream.seek(0) stream.truncate() if cv2.waitKey(1) > 0: break cv2.destroyAllWindows video.release() if __name__ == "__main__": print('start') main()
試したこと
while True: frame_count += 1 print(frame_count) camera.capture(stream, 'bgr', use_video_port=True) frame = stream.array print('text') cv2.putText(frame, str(frame_count), (10, 50), cv2.FONT_HERSHEY_PLAIN, 3, (255, 255, 255), 3, cv2.LINE_AA)
のようにprint分を入れてデバグしたところ、
return
11 2 3以下エラー文
と返ってきたので、camera.capture(stream, 'bgr', use_video_port=True)がうまくいっていないのかと思います。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。