如何在白色对象(掩码窗口中)上绘制一个矩形,该矩形出现在原始凸轮(框架窗口) 见图中。
我的代码:
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
while(1):
# Take each frame
_, frame = cap.read()
# Convert BGR to HSV
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
# define range of red color in HSV
lower_blue = np.array([0,89,190])
upper_blue = np.array([180,255,255])
# Threshold the HSV image to get only red colors
mask = cv2.inRange(hsv, lower_blue, upper_blue)
# Bitwise-AND mask and original image
res = cv2.bitwise_and(frame,frame, mask= mask)
cv2.imshow('frame',frame)
cv2.imshow('mask',mask)
cv2.imshow('res',res)
k = cv2.waitKey(5) & 0xFF
if k == 27:
break
cv2.destroyAllWindows()对不起,我的英语不好,我正在尽我最大的努力来提高它。
发布于 2017-11-30 15:21:17
就像Tiphel所说的那样,您可以使用cv2.findContesandcv 2。或者,在获得等高线之后,您也可以使用cv2.signingRect()函数绘制一个框。这将返回4个参数,例如,x、y、w和h,y代表一个点,w,h分别表示矩形的高度宽度。然后,可以使用cv2.矩形绘制矩形。你也可以与其他形状相类似,如椭圆、圆圈等。
i,等高线,传家宝=cv2.(a_thresh,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE) cont_sorted =排序(cnts2,key=cv2.contourArea,reverse=True):5 x,y,w,h=cv2.边界(Cont_sorted) Cv2.矩形(a,(x,y),(x+w,y+h),(0,0,255),5)
在这里,a_thresh是经过阈值处理后的二值图像。在cv2.矩形()函数中,第一个参数对应于要在其上绘制的图像,第四个参数指定颜色,第五个参数指定用于绘制矩形的线条的厚度。
此外,我使用‘排序’,以获得前5条轮廓的大小,理想情况下,我感兴趣的对象将是一个最大的面积。
您可以在网上找到这些文档。我建议您查阅上述所有函数的文档,以便在应用程序中适当地使用它!
发布于 2017-11-30 14:13:25
使用cv2.findContours查找蒙面图像上的对象,然后使用cv2.drawContours显示对象。
https://stackoverflow.com/questions/47574173
复制相似问题