首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何识别完全形状的矩形?

如何识别完全形状的矩形?
EN

Stack Overflow用户
提问于 2020-09-21 07:43:46
回答 1查看 42关注 0票数 0

我试图找出完全形成的反应角的坐标。我的意思是,有四个边与白色边界线,使完全盒子。

这是我的输入图像。

在下面的图片中,我用黄色显示了我想要得到坐标的矩形。

在这个输入图像中,有3个带有白色边框的黑色矩形和1个全是白色的矩形。

我当前的convert代码给出了所有区域的坐标,包括那些为我的目的产生噪音的白色区域。

代码语言:javascript
复制
convert input.png \
-define connected-components:verbose=true \
-define connected-components:area-threshold=100 \
-connected-components 8 -auto-level out:null | grep "255,255,255"

  7602: 233x81+295+192 411.0,232.0 18873 srgb(255,255,255)
  31: 356x70+365+28 542.4,57.2 4602 srgb(255,255,255)
  7604: 538x510+45+273 163.1,529.1 4394 srgb(255,255,255)
  7605: 292x470+627+273 809.5,494.2 2116 srgb(255,255,255)
  1393: 149x45+785+40 860.8,60.5 2040 srgb(255,255,255)
  8449: 513x125+70+658 326.0,708.6 761 srgb(255,255,255)
  7015: 43x27+291+110 312.5,122.1 620 srgb(255,255,255)
  7599: 84x43+676+148 717.5,169.0 250 srgb(255,255,255)

因此,我的问题是:是否有一种方法从convert命令提供的输出中识别出哪些坐标属于完全形成的矩形?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-21 09:53:08

我想到了几个想法。我还没有把它们开发成完整的解决方案,但如果时间允许的话,我可能会这样做。

  • 您可以选择列表中每个连接组件的中心作为洪流填充的种子点,比如黄色,然后使所有的东西都不是黄色的黑色(使用-fill black +opaque yellow),并再次运行连接组件,以查看是否得到了填充的形状正确的区域。因此,例如,选择第4行输出: 7604: 538x510+45+273 163.1 529.1 4394 srgb(255,255)

和中心的洪水填塞:

代码语言:javascript
复制
magick outlines.png -fill yellow -floodfill +314+478 black result.png

或者再走远一点:

代码语言:javascript
复制
magick outlines.png -fill yellow -floodfill +314+478 black -fill black +opaque yellow result.png

然后运行另一个连接组件分析,看看是否检测到完全黄色填充的形状。

  • 你也许可以运行一个击中或错过形态学,寻找线端,并跟随他们回到T-接头,并删除他们,以摆脱“超调”线,突出在你的矩形两端。

顺便说一句,如果你是专门寻找矩形,你可能会更好地检查4连接组件,而不是8连接目前。

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

https://stackoverflow.com/questions/63988054

复制
相关文章

相似问题

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