1

現在、ビデオ画像の中央にミシン目があることを検出し、シリアル コマンドを出力してカッター アームを制御する必要があるプロジェクトに取り組んでいます。現在、垂直の線を検出できます(これが必要です)が、画面の中央にあるときだけを検出できません。また、次の行からの出力を使用して、検出されている行があることがわかると思いますか?:

lines = cv2.HoughLinesP(edges, 1, math.pi/1, 1, None, 23, 1)

私の主な質問は次のとおりです OpenCV/python を使用して、ビデオ出力のちょうど中央にある垂直線を検出して、カメラを通過した穴の開いたセットの数を数え、X で停止して並べたときにカットする方法を教えてください。 ??

おそらく見たいものの写真 https://www.dropbox.com/s/13v9g92uw40riiq/good.png

以下の完全な作業コード:

import cv2
import os
import math
import numpy
import scipy

vc =cv2.VideoCapture(0)
if vc.isOpened():
rval, frame = vc.read()
else:
rval = False

while rval:
rval, frame = vc.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 80, 120, apertureSize=3)

lines = cv2.HoughLinesP(edges, 1, math.pi/1, 1, None, 23, 1)    #20-25 works well 

if lines != None:       
    for line in lines[0]:
        pt1 = (line[0],line[1])
        pt2 = (line[2],line[3])
        cv2.line(frame, pt1, pt2, (0,0,255), 2)

cv2.imshow("edge", frame)
ch = cv2.waitKey(50)

if ch != -1:
    print "keypressed"
    print ch
    break
cv2.destroyAllWindows()
4

0 に答える 0