###前提・実現したいこと
https://github.com/akisato-/pySaliencyMap
上記のサイトにて公開されている、
Webカメラ映像をSaliencyMap化するソースコードに関して質問させていただきます。
こちらを動画ファイルとして保存したいと考えております。
しかし、実行しても以下のエラーが表示されてしまい、
出来上がった「output.avi」を再生することができません。
(ファイルサイズが0KBになっています)
どうしたら、正しく動画を出力することができますか?
###発生している問題・エラーメッセージ
OpenCV Error: Assertion failed (image->depth == 8) in CvVideoWriter_FFMPEG_proxy::writeFrame, file D:\Build\OpenCV\opencv-3.3.0\modules\videoio\src\cap_ffmpeg.cpp, line 272 Traceback (most recent call last): File "main_webcam.py", line 33, in <module> out.write(frame) cv2.error: D:\Build\OpenCV\opencv-3.3.0\modules\videoio\src\cap_ffmpeg.cpp:272: error: (-215) image->depth == 8 in function CvVideoWriter_FFMPEG_proxy::writeFrame
###該当のソースコード
python
1 2import cv2 3import matplotlib.pyplot as plt 4import pySaliencyMap 5import numpy as np 6 7if __name__ == '__main__': 8 9 capture = cv2.VideoCapture(0) 10 11 while(True): 12 13 retval, frame = capture.read() 14 15 frame_size = frame.shape 16 frame_width = frame_size[1] 17 frame_height = frame_size[0] 18 sm = pySaliencyMap.pySaliencyMap(frame_width, frame_height) 19 20 saliency_map = sm.SMGetSM(frame) 21 22 cv2.imshow('Input image', cv2.flip(frame, 1)) 23 cv2.imshow('Saliency map', cv2.flip(saliency_map, 1)) 24 25 fourcc = cv2.VideoWriter_fourcc(*'XVID') 26 out = cv2.VideoWriter('output.avi',fourcc, 20.0, (1280,720)) 27 28 while(capture.isOpened()): 29 retval, frame = capture.read() 30 31 if retval==True: 32 frame = cv2.flip(saliency_map, 1) 33 34 out.write(frame) 35 36 cv2.imshow('frame',frame) 37 if cv2.waitKey(1) & 0xFF == ord('q'): 38 break 39 else: 40 break 41 42 if cv2.waitKey(1) & 0xFF == ord('q'): 43 break 44 45 cv2.destroyAllWindows()
回答1件
あなたの回答
tips
プレビュー