现在我正在开发一个项目,要求我检测一个穿孔线是在video图像的中间,然后输出一个串行命令来控制切割机臂。 现在我可以检测垂直线(这是我想要的),但是我不能检测到它们在屏幕的中心。 另外我想象使用从下面的行输出我可以告诉有线被检测到?
lines = cv2.HoughLinesP(edges, 1, math.pi/1, 1, None, 23, 1)
我的主要问题是如何使用OpenCV / python如何检测正好在video输出中心的垂直线,以便计算有多less穿孔的设备已通过相机,并在X停止和切断时排队??? ??
图片,我想可能会看到http://img.zgserver.com/python/good.png
完整的工作代码波纹pipe:
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()