Python 2.7 如何使用opencv python绘制轮廓检测到的四个点
我需要知道如何在四个点之间画线?所有点均由轮廓线检测。 共有四个红色点。如下图所示,使用cv2.findContours检测这些点。之后,我需要在每个点上画一条线,就像一个矩形。有人能帮我解决这个问题吗?我也用convexhull来做这个,但我不能解决它 这是我使用的代码Python 2.7 如何使用opencv python绘制轮廓检测到的四个点,python-2.7,opencv,image-processing,Python 2.7,Opencv,Image Processing,我需要知道如何在四个点之间画线?所有点均由轮廓线检测。 共有四个红色点。如下图所示,使用cv2.findContours检测这些点。之后,我需要在每个点上画一条线,就像一个矩形。有人能帮我解决这个问题吗?我也用convexhull来做这个,但我不能解决它 这是我使用的代码 ret, frame = cap.read() hsv = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV) RedMask = cv2.inRange(hsv,(0,100,100),(10,2
ret, frame = cap.read()
hsv = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
RedMask = cv2.inRange(hsv,(0,100,100),(10,255,255))
contours1, _ = cv2.findContours(RedMask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
for cnt1 in contours1:
#area = cv2.contourArea(cnt1)
#Draw it
#cv2.drawContours(frame,[cnt],0,(255,0,0),2)
hull = cv2.convexHull(cnt1)
cv2.drawContours(frame,hull,3,(255,0,0),2)
正如它所说的,您可以按以下方式使用它
cv2.drawContours(img, contours, index, color, thickness)
如果通过index=-1
,它将绘制所有轮廓。如果您通过index=3
,它将在等高线数组中绘制第四条等高线。在这种情况下,如果您的convexHull数组仅包含一个轮廓,则可以传递索引=-1
尝试cv2。多段线:
#first we need to change the shape of the array
(count,_,_) = hull.shape
hull.ravel()
hull.shape = (count,2)
#some blank img to drow on
blank = np.zeros_like(frame)
#drawing
cv2.polylines(blank,np.int32([hull]),True,255)
请注意,我们需要转换数组的数据类型(基于)我以前是这样做的。它不起作用。谢谢你的回答。