现在我正在开展一个项目,要求我检测穿孔线何时位于视频图像的中间,然后输出一个串行命令来控制切割臂。现在我可以检测到垂直的线条(这就是我想要的),但我无法检测它们何时位于屏幕的中心。另外我想象使用以下行的输出我可以看出有线被检测到了吗?:
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()