检测图像中的图案并检索其位置

2023-12-29

我有一张 1920x1080 的图像。我需要获取图像中每个矩形的位置。最好为 2 个点(左上、右下)。

我对 Python 还很陌生。我想也许使用 opencv 模块,但如果你能给我一些指示,那将会非常有帮助。

Thanks.


我建议使用OpenCV findContours()像这样:

#!/usr/bin/env python3

import numpy as np
import cv2

# Load image
im = cv2.imread('pattern.png')

# Convert to grayscale
imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)

# Find contours, draw on image and save
im2, contours, hierarchy = cv2.findContours(imgray,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(im, contours, -1, (0,0,255), 3)

# Show user what we found
i=0
for cnt in contours:
    x,y,w,h = cv2.boundingRect(cnt)
    print('Contour {}: x={}, y={}, w={}, h={}'.format(i,x,y,w,h))
    i = i+1

# Save the result
cv2.imwrite('result.png',im)

样本输出

Contour 0: x=1743, y=903, w=77, h=77
Contour 1: x=1552, y=903, w=77, h=77
Contour 2: x=291, y=903, w=77, h=77
Contour 3: x=100, y=903, w=77, h=77
Contour 4: x=1648, y=808, w=77, h=77
Contour 5: x=196, y=808, w=77, h=77
Contour 6: x=1743, y=712, w=77, h=77
Contour 7: x=291, y=712, w=77, h=77
Contour 8: x=100, y=712, w=77, h=77
Contour 9: x=1551, y=711, w=78, h=78
Contour 10: x=1017, y=597, w=77, h=77
Contour 11: x=826, y=597, w=77, h=77
Contour 12: x=922, y=502, w=77, h=77
Contour 13: x=1017, y=406, w=77, h=77
Contour 14: x=826, y=406, w=77, h=77
Contour 15: x=1743, y=291, w=77, h=77
Contour 16: x=1552, y=291, w=77, h=77
Contour 17: x=291, y=291, w=77, h=77
Contour 18: x=100, y=291, w=77, h=77
Contour 19: x=1648, y=196, w=77, h=77
Contour 20: x=196, y=196, w=77, h=77
Contour 21: x=1743, y=100, w=77, h=77
Contour 22: x=1552, y=100, w=77, h=77
Contour 23: x=291, y=100, w=77, h=77
Contour 24: x=100, y=100, w=77, h=77

请注意,这并不是专门寻找您的图案,它只是寻找黑色背景上的白色物体。这有优点也有缺点。优点是它适用于任何白色形状(圆形、星形、八边形),而无需更改代码。它也可能比模板匹配更快。缺点是,如果图像中存在其他白色物体,它会给您带来误报 - 尽管您可以检查形状、圆形、颜色或其他内容来确认/消除歧义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检测图像中的图案并检索其位置 的相关文章

  • Python 字典不按顺序排列

    我创建了一个字母表字典 其值从0开始 并根据单词文件增加一定的量 我对最初的字典进行了硬编码 我希望它保持按字母顺序排列 但事实并非如此 我希望它按字母顺序返回字典 基本上与初始字典保持相同 我怎样才能保持秩序 from wordData
  • 如何在 pygame 中水平翻转图像?

    这是在 pygame 如何翻转图像 假设一个图像 猪向右看 时向左看 我按向左箭头键 然后保持这样 即使我不按任何键或者按向上和向下箭头键 那么 当我按向右箭头键时 如何再次将其切换回向右看 并使其保持这种状态 即使我不按任何键或按向上和向
  • 使用 python3 和请求登录 Twitter

    我正在开发一个项目 要求使用用户名和密码登录网站 我必须在 python 中执行此操作 然后才能访问只有登录人员才能访问的网站部分 我尝试了几种编码变体来执行此操作 但无法成功登录然而 这是我的编码 登录它的功能 def 会话2 url r
  • 如何使用 eval dataframe 方法在自定义函数中返回 numpy 数组或列表?

    我正在使用 python 3 X 我正在尝试使用eval https pandas pydata org pandas docs stable generated pandas eval html pandas eval数据框方法 包括这样
  • 使用魔法函数 %matplotlib inline

    我试图看看使用之间的区别 matplotlib 内联并且没有这个声明 但两次输出没有区别 然后它有什么用 Output without matplotlib inline line Output with matplotlib inline
  • 向 Python 函数添加属性的最佳方法

    以计算数学函数的 Python 函数为例 def func x a b c Return the value of the quadratic function ax 2 bx c return a x 2 b x c 假设我想以函数属性的
  • 在 opencv 中一次性将旋转和平移结合起来

    我有一段用于旋转和平移图像的代码 Point2f pt 0 in rows double angle atan trans c trans b 180 M PI Mat r getRotationMatrix2D pt angle 1 0
  • 组内条件计数

    我想在之后进行条件计数groupby 例如 按列的值分组A 然后计算每组中值出现的频率5出现在列中B 如果我整个过程都这样做DataFrame 只是len df df B 5 所以我希望我能做到df groupby A df B 5 siz
  • 如何获取 sklearn.metrics.classification_report 的输出作为字典?

    我一直在尝试以字典的形式获得分类报告 所以根据 scikit learn 0 20 文档 我这样做 from sklearn import metrics rep metrics classification report y true y
  • 如何使用最小生成树方法将边缘连接到图像中的节点

    我正在做我的手写图像图形匹配项目 我想在图形中表示给定的单词图像 我使用下面的算法 Algorithm input Binary image B Grid width w Grid height h Output Graph g V E w
  • Python setuptools:如何在 setup.py 中添加私有存储库 (gitlab)?

    我上传了 2 个包 它们位于我的 gitlab 存储库中 如果我想使用 pip 将它们安装在我的系统中 这很容易 因为 gitlab 可以帮助您 https docs gitlab com ee user packages pypi rep
  • Android:将图像裁剪为特定尺寸

    我的目的是让用户从图库中选择一张图像 然后进行裁剪活动 但是 我需要将定义裁剪蒙版的矩形锁定到某个尺寸 然后用户只需重新定位它即可显示图像的一部分 关于如何做到这一点有什么想法吗 Thanks T Intent intent new Int
  • 如何循环遍历字典列表并打印特定键的值?

    我是 Python 新手 有一个问题 我知道这是一个非常简单的问题 运行Python 3 4 我有一个需要迭代并提取特定信息的列表 以下是列表 称为部分 的示例 已截断 数千个项目 state DEAD id phwl type name
  • 从另一个线程调用线程中的方法,python

    如何实现线程之间的通信 我有一个线程在其中执行一些操作 然后我需要从位于主程序线程中的对象调用一个方法 并且该方法应该在主进程中执行 class Foo def help self pass class MyThread threading
  • 如何在Python 3中将文本流编码为字节流?

    将字节流解码为文本流很容易 import io f io TextIOWrapper io BytesIO b Test nTest n utf 8 f readline 在这个例子中 io BytesIO b Test nTest n 是
  • 如何从一个清晰的例子计算二维图像中的吉布斯能量

    我有一个关于矩阵的有趣问题 在吉布斯分布中 吉布斯能量U x 可以计算为 这是所有可能的派系 C 上的派系势 Vc x 的总和 右图 团 c 被定义为 S 中站点的子集 x 蓝色像素的邻域是左图中黄色像素的邻居 其中每对不同的站点都是邻居
  • Python HTTP Post 方法将响应返回为 magicmock 对象而不是值

    我正在尝试使用 POST 方法触发某些 API 后检查响应状态代码 响应状态代码是 Magicmock 实例类型 我正在使用在 python 2 中工作但引发 TypeError 的比较运算符检查状态代码是否在 400 和 500 之间在P
  • 致命错误:Python.h:没有这样的文件或目录,python-Levenshtein 安装

    首先 我正在使用 Python 3 7 开发 Amazon EC2 实例 Amazon linux 版本 2 AMI 我正在尝试使用以下命令安装 python Levenshtein 包 pip3 install python Levens
  • Windows 中的 Python 多处理池奇怪行为

    Python 多处理池在 Linux 和 Windows 之间有不同的行为 当按工作人员数量运行方法映射时 在 Linux 中 它会在您作为参数提供的特定函数的范围内运行该进程 但在 Windows 中 每个工作进程都在父进程的范围内运行
  • Python:处理图像并保存到文件流

    我需要使用 python 处理图像 应用过滤器和其他转换 然后使用 HTTP 将其提供给用户 现在 我正在使用 BaseHTTPServer 和 PIL 问题是 PIL 无法直接写入文件流 因此我必须写入临时文件 然后读取该文件 以便将其发

随机推荐

  • python ctype 递归结构

    我用 C 语言为驱动程序开发了一个 DLL 我用 C 编写了一个测试程序 该 DLL 工作正常 现在我想使用 Python 与这个 DLL 进行交互 我已经成功隐藏了大部分用户定义的 C 结构 但有一点我必须使用 C 结构 我对 pytho
  • Solr 和 Zookeeper 配置

    在生产环境中 是否应该在每台可能的服务器上设置 Solr 包括具有 Zookeeper 的服务器 谈论外部Zookeeper 服务器总数 5 情况1 所有 5 台服务器上都有 Solr Zookeeper 在 3 台服务器上 案例2 Sol
  • CodeAnalysis 是否会返回 CA2202 误报?或者我的代码真的有问题吗?

    我遇到了同样的问题解释here https stackoverflow com questions 29528876 for each loop with a collection of class instances multiple d
  • django更改tinymce中的字体大小和字体系列

    我的基本文件中有这个脚本
  • 使用 Retrofit POST 正文 JSON

    我正在尝试使用 Retrofit 库发布 JSONObject 但是当我在接收端看到请求时 内容长度为0 在RestService接口中 Headers Content type application json POST api v1 u
  • iOS 8 更改方向后无法调整模态表单的大小

    实际上我正在做的是在 iPad 上呈现模态形式 我自己的尺寸 520 X 400 第一次运行得很好 然后当我旋转时 纵向到横向或横向到纵向 我的模态表单更改为 ios 默认大小 另外 我没能 以编程方式再次更改模式表单尺寸 自从 一旦方向改
  • Heroku 应用程序崩溃,日志显示“No such file to load -- nokogiri (LoadError)”

    我有一个工作应用程序 添加了 Nokogiri 用于解析一些 xml 在本地运行良好 我的 Gemfile 包括 gem nokogiri I ran bundle install并验证了我的 Gemfile lock 包括DEPENDEN
  • R中的预分配列表

    在 R 中 在循环中扩展数据结构效率很低 我如何预分配list具有一定的尺寸 matrix通过以下方式可以轻松做到这一点ncol and nrow论据 如何在列表中做到这一点 例如 x lt list for i in 1 10 x i l
  • 如何找到实体框架的水晶报表?

    如何将 Crystal Reports 绑定到实体框架实体 我确实还没有找到解决方法 而且我还没有足够的积分来对现有问题进行投票 至于我 我阅读了下面的链接 http aspalliance com 2049 Use LINQ to Ret
  • 使用IoC时单元测试的策略应该是什么?

    在读完有关依赖注入和 IoC 的所有内容后 我决定尝试在我们的应用程序中使用 Windsor Container 它是一个 50K LOC 多层 Web 应用程序 所以我希望它不是一个矫枉过正的东西 我使用了一个简单的静态类来包装容器 并在
  • 修复我的网络活动指示器

    我的网络活动指示器有一个问题 有时它会在不应该显示的情况下继续显示 我为它编写了自己的管理器 并将其替换为使用NSAssert像这样的声明 void setNetworkActivityIndicatorVisible BOOL setVi
  • 如何在 Eclipse 中的 Android 库项目中引用外部 jar

    哦 安卓 我多么喜欢你的言辞 我有一个工作区 里面有一些项目 App1和App2是Android应用程序 Common是一个Android库项目 App1 和 App2 依赖于 Common 通过 Android 选项卡链接 Common
  • 更新命令行应用程序状态

    我有一个命令行应用程序 当前打印增加的百分比 1 2 3 4 输出是连续的 但我见过命令行工具显示更改 就好像它是内联更新一样 1 2 与第一个位置相同 3 与第一个位置相同 4 与第一个位置相同 我怎样才能做到这一点 我正在使用 Java
  • 将 3 列文件转换为矩阵格式

    我有一个如下例所示的文件格式 显示了 5 个人 包括他们自己 之间的关系 1 1 1 0 2 1 0 5 3 1 0 1 4 1 0 3 5 1 0 1 2 2 1 0 3 2 0 5 4 2 0 2 5 2 0 3 3 3 1 0 4 3
  • 静态属性和单例有什么区别?

    使用 C 实现的单例可能类似于 public class Singleton private static Singleton instance private Singleton public static Singleton Insta
  • 如何使用 NSUserDefaults 注册用户默认值而不覆盖现有值?

    我有一个 AppDelegate 类 void initialize我用来注册一些默认值的方法 这是我使用的代码 void initialize NSDictionary defaults NSDictionary dictionaryWi
  • 可移植的有符号/无符号字节转换,C++

    我正在使用有符号到无符号字节 int8 t 转换来打包字节 uint32 t uint8 t byte lt lt n 这可以在 Intel Linux 上使用 GCC 运行 对于其他平台 编译器 例如 PowerPC 是否可移植 有更好的
  • JavaFX:使用自定义节点作为 TreeView 的折叠/展开分支开关

    是否可以替换a的展开和折叠箭头TreeView与定制Node 形状 而不是image https stackoverflow com q 15521806 1725096 The fx shape箭头的 css 属性提供了基本的 SVG 形
  • 我如何 - 长轮询和调度程序?

    我正在尝试安排一个长轮询机制 我想知道是否可以利用调度程序来实现这一点 到目前为止 这就是我一直在想的 通过计时器进行调度 但仅在上一次迭代已经完成的情况下才将下一次迭代排入队列 当上一次迭代完成时 将下一次迭代排入队列 我一直在查看现有的
  • 检测图像中的图案并检索其位置

    我有一张 1920x1080 的图像 我需要获取图像中每个矩形的位置 最好为 2 个点 左上 右下 我对 Python 还很陌生 我想也许使用 opencv 模块 但如果你能给我一些指示 那将会非常有帮助 Thanks 我建议使用OpenC