【问题标题】:Morphology operations using Matlab [closed]使用 Matlab 进行形态学操作
【发布时间】:2014-10-29 22:57:12
【问题描述】:

问题来了:

一台相机拍摄一张I 的图像,一张一美分、一角硬币和四分之一躺在一张白纸上 背景和硬币不重叠。假设阈值处理成功创建了二值图像B 硬币区域为 1,背景为 0。

您将获得硬币d_pd_dd_q 的已知直径(以像素为单位)(注意d_d < d_p < d_q)。如何使用形态学运算(膨胀、腐蚀、开运算和 关闭)以及逻辑和设置操作(AND、OR、NOT 和设置差异),以生成三个二进制输出图像 PDQ,其中 P 应该只包含一分钱,@987654332 @ 应该只包含一角钱,Q 应该只包含四分之一?

谁能给出代码或一些提示?提前致谢!

【问题讨论】:

  • 你必须先表现出一些努力。 This是我搜索“硬币识别”时得到的。你现在应该已经解决了这个问题。

标签: matlab image-processing mathematical-morphology


【解决方案1】:

这显然看起来像家庭作业,所以我不会为你编写任何代码,但我会给你一些提示,以推动你朝着正确的方向前进。您描述的情况是高度理想化的,并不反映现实世界的情况……这实际上很棒,因为它使编码更加简单。我假设这张照片是直接在硬币表面上方拍摄的,而不是在某个角度。

  1. 您已经知道每个硬币的直径,并且因为直径以像素为单位,这使得这个问题变得更加容易。因此,您需要为每个硬币指定三个具有相同直径的圆形结构元素。

  2. 首先使用最大的结构元素,即四分之一,对B 进行形态学开场。打开是腐蚀,然后是膨胀。关于腐蚀,您应该知道的一件事是,任何小于结构元素的对象都会消失,而那些较大的对象将保留对象中的像素。因此,通过关闭,您将移除一分钱一角,而该季度将完全重建。关于开放的一个好处是,如果您的结构元素比对象本身小,那么开放应该保持对象相同,前提是结构元素和对象遵循或多或少相同的特征。因为您的结构元素是圆形的,硬币也是如此,所以我们可以开始了。因此,这是您的第一张图片Q

  3. 接下来,使用第二大结构元素,即便士,在图像B 上做一个开口。现在会发生的是,一角钱应该消失,而四分之一和便士应该仍然存在。因此,请在此图像和Q 之间设置差异。我们的结果只是剩下的一角钱,所以这是P

  4. 最后,你甚至不需要做任何形态。执行逻辑OR 操作以组合季度Q 和便士P 以获得组合图像。之后,在原始图像B 和这个组合图像之间设置差异。然后,您将隔离一角钱,现在是 D


这应该足以让您入门。祝你好运!

【讨论】:

  • 虽然你(几乎)已经给出了答案,但从某种意义上说,你也告诉了他你的思考过程,这应该有助于他学习。 +1。
  • @ParagS.Chandakkar - 啊哈哈哈,现在我看到了,我实际上已经给出了答案。你可以很容易地把我写的东西写成代码。但是,我将把它留给 OP 作为学习练习。谢谢你的投票:)
猜你喜欢
  • 1970-01-01
  • 2021-05-20
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 2021-11-23
  • 2014-11-16
相关资源
最近更新 更多