Python:检测黑色方块

2024-03-25

我正在尝试检测黑色方块。

到目前为止,这是我的代码...

    frame=cv2.imread('squares.jpg')
    img=cv2.GaussianBlur(frame, (5,5), 0)

    img=cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

    lower=np.array([0, 0, 0],np.uint8)
    upper=np.array([10, 50, 50],np.uint8)
    separated=cv2.inRange(img,lower,upper)


    #this bit draws a red rectangle around the detected region
    contours,hierarchy=cv2.findContours(separated,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
    max_area = 0
    largest_contour = None
    for idx, contour in enumerate(contours):
        area = cv2.contourArea(contour)
        if area > max_area:
            max_area = area
            largest_contour=contour
            if not largest_contour==None:
                moment = cv2.moments(largest_contour)
                if moment["m00"] > 1000:
                    rect = cv2.minAreaRect(largest_contour)
                    rect = ((rect[0][0], rect[0][1]), (rect[1][0], rect[1][1]), rect[2])
                    (width,height)=(rect[1][0],rect[1][1])
                    print str(width)+" "+str(height)
                    box = cv2.cv.BoxPoints(rect)
                    box = np.int0(box)
                    if(height>0.9*width and height<1.1*width):
                            cv2.drawContours(frame,[box], 0, (0, 0, 255), 2)

    cv2.imshow('img',frame)

然后我尝试在检测到的黑色区域周围绘制一个红色方块。

该代码适用于黄色、橙色、红色和绿色,具有以下参数:

colours=['yellow','orange','red','green','black','white']
uppers=[[20,100,100],[5,100,100],[0,100,100],[???,???,???],[???,???,???]]
lowers=[[30,255,255],[15,255,255],[6,255,255],[???,???,???],[???,???,???]]

我只是无法让黑色或白色工作......

有什么想法吗?


这里的关键直觉是黑色位于所有色调和饱和度值HSV气缸 http://en.wikipedia.org/wiki/File:Hsl-hsv_models.svg,但仅限于低值。我发现有一个下限[0, 0, 0]和一个上限[180, 255, 50]将找到黑色方块,如下所示:

我还应该提到,由于以下几个原因,您的方法不适用于查找白色方块:

  • 存在多个白色方块。您的方法仅选择最大的轮廓,这意味着每种颜色只能检测到一个正方形。
  • 很难将“白色方块”与打印它们的纸张的颜色区分开来。您可能会得到连接正方形和侧面纸条的单个轮廓。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:检测黑色方块 的相关文章

随机推荐

  • Tflite-model-maker 正在无休止地下载多个文件

    我正在尝试使用此安装 TensorFlowtutorial https www tensorflow org lite models modify model maker image classification 因此 当我在终端上运行以下
  • Postgres 中的按位运算

    我有以下表格 types id name 1 A 2 B 4 C 8 D 16 E 32 F and vendors id name type 1 Alex 2 type B only 2 Bob 5 A C 3 Cheryl 32 F 4
  • 高效的 numpy 数组创建

    Given x 我想生产x log x 作为一个 numpy 数组 其中x有形状s 结果有形状 s 2 做到这一点的最巧妙的方法是什么 x可能只是一个浮点数 在这种情况下我想要一个具有形状的结果 2 一个丑陋的方法是 import nump
  • 将关闭按钮(红色 x)添加到 .NET 工具提示

    我正在寻找一种向 NET ToolTip 对象添加关闭按钮的方法 类似于 NotifyIcon 所具有的按钮 我使用工具提示作为消息气球 通过 Show 方法以编程方式调用 这工作正常 但没有 onclick 事件或关闭工具提示的简单方法
  • UILabel 文本末尾的 UIImage

    如果 UILabel 中有超过 1 行文本 如何找到 UILabel 中最后一个字符的坐标 我想在文本末尾添加图像 我想你正在寻找NSTextAttachment create an NSMutableAttributedString le
  • Babel.js 使用导入和导出不起作用

    我正在尝试使用导入和导出来创建模块 但它不起作用 I added https cdnjs cloudflare com ajax libs babel standalone 6 24 0 babel min js https cdnjs c
  • NPOI 不会更改单元格的字体颜色

    我正在尝试有条件地更改单元格的字体颜色 这是我最后一次尝试 IWorkbook wb null using FileStream fileStream new FileStream path FileMode Open FileAccess
  • mongodb聚合框架-从函数生成_id

    是否可以在 group 的 id 字段中拥有自定义函数 尽管文档似乎表明可以计算该字段 但我无法使其工作 例如 假设我有一组文档 其中的数字字段范围为 1 到 100 我想将数字分类到多个桶中 例如1 20 21 40 等 然后 我将使用此
  • 使用 Go 进行 IAM 身份验证的 API 网关 HTTP 客户端请求

    您好 StackOverflow AWS Gophers 我正在实施 https github com umccr cliCLI 具有出色的spf13 的 cobra viper 软件包 https github com spf13 cob
  • C# 检查字符串是否包含字符串数组中的任何匹配项

    在 C 中检查字符串是否包含字符串数组中的任何匹配项的最快方法是什么 我可以使用循环来做到这一点 但我认为这太慢了 使用 LINQ return array Any s gt s Equals myString 当然 您可能需要考虑文化和案
  • java - 无法从 DocumentListener 方法内部更改 JTextfield 的值

    我收到 尝试在通知中进行变异 异常 1 我怎样才能改变它 2 如何获取触发监听器之前 TextField 内的值 EDIT 是这样的 在 JTextfield 上我有这个监听器 basePriceTF getDocument addDocu
  • 使用 Windows 身份验证和特定帐户连接到 SQL Server

    我有一个 ASP Net 应用程序 它使用 Windows 身份验证运行 与 SQL Server 的连接通常是通过创建 SQL Server 帐户并在连接字符串中使用该帐户来完成的 然而 在这个特定的非常严格的托管环境中 我们被要求使用特
  • “警告:react-modal:应用程序元素未定义。请使用`Modal.setAppElement(el)`或设置`appElement={el}`”

    如何使用react modal包在React应用程序的控制台中修复此警 告 警告 react modal 应用程序元素未定义 请用Modal setAppElement el or set appElement el 我还没有成功地弄清楚什
  • SwiftUI @FocusState - 如何赋予它初始值

    我很高兴看到 TextField 增强功能 focused https developer apple com documentation swiftui view focused https developer apple com doc
  • 用于构建面向对象软件的好资源或书籍[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • mariadb声明变量语法错误

    我使用 mariadb 和 heidisql 来执行 sql 声明 AccountID INT 插入帐户 名字 mi 姓氏 电子邮件 is admin is enabled date created 值 testfirstname a te
  • htaccess 强制 https 并将 www 重定向到非 www,但没有其他子域

    我知道有很多类似的线程 但似乎没有一个与我的确切问题相符 这是我正在尝试做的事情 1 http www mydomain com gt https mydomain com 2 http mydomain com gt https mydo
  • PHP 友好 URL 路由帮助

    我正在构建一个通过index php 运行所有代码的网站 例如index php controller something id 01234 我想使用 PHP 创建友好的 URL 所以我这样做 request str replace roo
  • SQL Server 通配符[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions Does Select from t
  • Python:检测黑色方块

    我正在尝试检测黑色方块 到目前为止 这是我的代码 frame cv2 imread squares jpg img cv2 GaussianBlur frame 5 5 0 img cv2 cvtColor frame cv2 COLOR