首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >识别图片中的特定区域

识别图片中的特定区域
EN

Stack Overflow用户
提问于 2013-11-28 06:45:30
回答 2查看 564关注 0票数 1

我目前正在做一个小项目,涉及到在一个固定的背景上绘制的表示平面图的类似图片中的特定区域的检测。

下面是一个图片示例:

我试着找出那些门,试图达到这样的结果:

我是一个完全新手在图像处理和不确定什么样的算法或图像处理方法,我正在寻找。我尝试玩一些边缘检测算法,包括在Photoshop,但我无法得到一个干净的结果。

有人能提供一些帮助或指导吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-29 09:54:29

我终于让它和几乎任何一种瓷砖一起工作了。由于该算法仅用于为另一个应用程序生成配置文件,因此我将手动修复其余的瓷砖:)

以下是我对任何感兴趣的人的解决方案:

  1. 提高对比度,降低图像的亮度,以便容易区分墙壁和其他墙壁:

  1. 在200x200 of正方形的6x6网格上划分每个瓷砖。对于每个平方,计算30 on边线上每边的平均RGB值。

  1. 将此值与瓷砖的其余部分进行比较。如果差异大于一个特定的增量(经验发现),那么它就是一堵墙。

  1. 在边界上的每个瓷砖周围,检查通向出口的墙壁(顶部的垂直墙,等等),一旦你确定了它们,找出哪个瓷砖通向出口是相当微不足道的。

以下是各种瓷砖的最终结果:

票数 2
EN

Stack Overflow用户

发布于 2013-11-28 15:14:56

我不认为这种边缘检测会对你有帮助。

如果平面图总是固定的网格,那么任务就更容易了:您只需遍历所有的边框,并识别它们是墙砖还是地砖。如果是门砖,把门画成长方形。(这意味着在您的示例中,实际上有四个门是一个网格宽度,而不是两个门是两个网格宽。墙角的地砖也是两扇门,一个是垂直的,另一个是水平的。

问题是如何识别瓷砖。地砖太不一样了,质地粗糙,也有墙壁投下的阴影。识别墙面瓷砖比较容易。它们的颜色很相似。

我的第一个想法是将图像缩小到6x6像素。这会给我每个瓷砖的平均颜色,但它没有起作用:墙壁的部分给出一个偏移的颜色。

一种似乎可行的方法是确定每个瓷砖核心区域的平均RGB颜色,然后将其与墙砖的泥泞深棕色与欧几里德距离与墙砖颜色样本进行比较:

这种方法依赖于对所有平面图中的所有瓷砖采用类似的颜色方案。我用过这个标准

代码语言:javascript
运行
复制
r > 0x44 || g > 0x44|| b > 0x44

在这里识别地砖。也许你需要一个更好的标准,如果你必须区分更多的瓷砖类型。

编辑我刚刚看到了你发布的新瓷砖。上述方法在这里行不通,至少在铁路线路的计划中是行不通的。也许算法需要看一下薄壁。

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

https://stackoverflow.com/questions/20259428

复制
相关文章

相似问题

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