動画から直線を検出した覚書
import numpy as np
import cv2
import time
cam = cv2.VideoCapture('ファイルパス/sample.mp4')
#動画を取り込み
while(cam.isOpened()):# 動画終了まで繰り返し
t = time.time()
#時間測定
ret, img = cam.read()
#動画を画像に切り取り
if not ret:
break #動画が最後なら終了
img = cv2.resize(img, (640, 380))
#画像のリサイズ
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#グレイスケール変換
dst = cv2.Canny(gray, 150, 200)
#輪郭検出(画像、外れ許容値(これ以上ならつなげる)、しきい値)
if cv2.waitKey(1) & 0xFF == ord('q'): break
#「q」が押されたら終了
lines = cv2.HoughLinesP(dst, rho=1, theta=np.pi/360, threshold=30, minLineLength=20, maxLineGap=8)
#輪郭画像から直線を検出 HoughLinesPは確率的探索
#HoughLinesP(画像, rho=1, 検出角度, しきい値, 最小ライン長, 検出幅)
for line in lines:
x1, y1, x2, y2 = line[0]
lines_img = cv2.line(img, (x1,y1), (x2,y2), (0,0,255), 2)
#検出した線をimgに書き込み
cv2.imshow("Frame", lines_img)
cv2.imshow("Frame2", dst)
print(time.time() - t, len(lines))
cv2.imwrite('lined_img.png', lines_img)
print(len(lines))
print(time.time() - t)
cam.release() #後処理
cv2.destroyAllWindows() #後処理
処理フレームレート30dpsくらい
Author And Source
この問題について(動画から直線を検出した覚書), 我々は、より多くの情報をここで見つけました https://qiita.com/mitsuoka/items/d32b24239a7954984e2e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .