首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在打开的cv中围绕有色对象绘制矩形?

如何在打开的cv中围绕有色对象绘制矩形?
EN

Stack Overflow用户
提问于 2017-11-30 13:02:09
回答 2查看 4.8K关注 0票数 0

如何在白色对象(掩码窗口中)上绘制一个矩形,该矩形出现在原始凸轮(框架窗口) 见图中。

我的代码:

代码语言:javascript
复制
    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()

对不起,我的英语不好,我正在尽我最大的努力来提高它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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条轮廓的大小,理想情况下,我感兴趣的对象将是一个最大的面积。

您可以在网上找到这些文档。我建议您查阅上述所有函数的文档,以便在应用程序中适当地使用它!

票数 2
EN

Stack Overflow用户

发布于 2017-11-30 14:13:25

使用cv2.findContours查找蒙面图像上的对象,然后使用cv2.drawContours显示对象。

医生在这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47574173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档