【问题标题】:Shape detection in image using Matlab使用 Matlab 检测图像中的形状
【发布时间】:2015-12-24 03:27:34
【问题描述】:

我有一个包含许多形状的图像,我需要编写一些 Matlab 代码来删除除矩形之外的所有形状。是否可以使用 only 和 strel、imclose 和 bwareaopen 来执行此操作?如果你认为是的,我会很高兴听到你的意见。

图片:

【问题讨论】:

  • 嗨德文!我看不到图片,您可以将其直接包含在 stackoverflow 中吗?
  • 我做不到..但是试试这个:imgur.com/L1KchUH
  • 你试过了吗?
  • 是的(甚至有些天)但没有成功..如果你有任何想法,我会很高兴听到
  • “是”对于告诉我们您尝试过的什么并不是很有帮助。另外,我不明白为什么您(似乎)将解决方案任意限制为“only with strel、imclose 和 bwareaopen”。这有什么特别的原因吗?

标签: image matlab shape detection


【解决方案1】:

如果我从您的评论中理解,矩形可能有任何大小。我认为只有在其他形状具有固定大小的情况下才能询问此问题,因为您被要求使用 strel、imclose 和 bwareaopen。简单解释一下,

strel 函数为您添加的图片上的矩形、圆盘或任何其他形状创建具有 给定 大小的结构元素。

imclose 应该用于连接您作为输入提供的相似形状(基本上是您应该从 strel 函数中找到的结构元素)。

bwareaopen 将用于删除输入像素小于 P 的对象。

因此,如果可以为该图像指定任意大小的矩形,则其他形状应保持不变,以便能够使用 strel 函数定义它们,并使用 imclose 函数连接。这样,您可以将它们全部连接起来,取反,使用 bwareaopen 删除,然后再次取反,最终得到矩形。

我想不出任何其他解决方案,希望对您有所帮助!

【讨论】:

  • 其他形状也可以有不同的大小,代码应该是通用的。我已经尝试过您之前提供的内容,但结果是矩形与某个闭合的圆圈相连。
猜你喜欢
  • 2014-09-16
  • 1970-01-01
  • 2012-11-15
  • 2013-05-05
  • 2019-07-27
  • 1970-01-01
  • 2018-03-03
  • 2011-07-28
相关资源
最近更新 更多