何の役に立つかわかりませんが、アメ横を行き交う人々のエッジを検出しました。
- import cv2
- import numpy as np
- cap = cv2.VideoCapture('./img.MOV')
- fps = cap.get(cv2.CAP_PROP_FPS)
- width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
- height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
- fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v')
- out = cv2.VideoWriter('output.m4v', fourcc, fps, (height, width))
- while True:
- ret, frame = cap.read()
- if ret:
- frame270 = np.rot90(frame, 3)
- dst = cv2.Canny(frame270, 50, 200)
- bgr = cv2.cvtColor(dst, cv2.COLOR_GRAY2BGR)
- out.write(bgr)
- else:
- break
- cap.release()
- out.release()
「bgr = cv2.cvtColor(dst, cv2.COLOR_GRAY2BGR)」がポイントです。これをしないと正常に動画を出力できません。
結果は以下の通りです。
何の役に立つかわかりませんが、アメ横を行き交う人々のエッジを検出しました。
【Python: OpenCVを使用して、アメ横を行き交う人々のエッジを検出する】https://t.co/NDan1nLcST pic.twitter.com/oBawipbmB4— oliverSI/Python芸人 (@oliverSI7) January 17, 2019
cv2.bitwise_not(dst)として、白黒反転させた方がいい感じです。
Python関連の記事を更新しました。
【Python: OpenCVを使用して、アメ横を行き交う人々のエッジを検出する】https://t.co/NDan1nLcST pic.twitter.com/rY0pVvUg3y— oliverSI/Python芸人 (@oliverSI7) January 18, 2019