我们该从哪几个方面去衡量图像形态学操作中的结构形状的操作效果

要理解这个问题,建议大家首先了解一定的形态学操作基础知识,详情见博文 https://blog.csdn.net/wenhao_ir/article/details/51888042

那么我们该从哪些方面去衡量图像形态学操作中的结构形状的操作效果呢?

主要是两个方向,一是“操作方向”,二是“操作深度”。

接下来,博主详细说明这两点。

理论上来说,对于一个点,可以沿任意方向引出无数条以它为起点的线段。
但是,因为咱们的结构矩阵都是比较小的,比如3×3、5×5、7×7、9×9,通常一般9×9就比较大了。再加上我们通常都取结构体中心为锚点,尺寸再缩短一半,就更短了。
这么短的距离,点就很少,我们能引出的线段就非常有限。

以3×3的矩阵为例,以它的中心点只能引出以下八个方向的线段,如下图所示:
在这里插入图片描述
上图中①~⑧号线段的度数分别为0度(水平正方向)、45度、90度(垂直正方向)、135度、180度(水平负方向)、225度、270度(垂直负方向)、315度。
其中0度(水平正方向)和180度(水平负方向)通常合称为水平方向,90度(垂直正方向)和270度(垂直负方向)通常合称为垂直方向。

我们再来看下面5×5的结构体。
在这里插入图片描述

从上面的图来看,在第一象限内,引出了六条线段。
这六条线段中第①条和第②条的方向相同,第④条和第⑤条的方向是相同的,其它的方向都不同。
这些线段不仅存在着方向上的不同,长度上也不一样。这些线段的长度博主称它为形态学操作的深度。比如第①条和第②条的不同就在于操作深度不一样,我们定义第①条的操作深度为1,第②条的操作深度为2。第③条的操作深度为 5 \sqrt{5} 5 。第④条的操作深度为 2 \sqrt{2} 2 ,第⑤条的操作深度为 2 2 2\sqrt{2} 22 。第⑥条的操作深度为 5 \sqrt{5} 5

我们看一个结构它有什么样的腐蚀和膨胀效果,就从博主上面提到的两点来看,第一点为操作方向,第二点为操作深度。有类似于矢量的两个属性:模和方向的概念。
操作方向刚才已经说得比较清楚了,操作深度体现出的效果为在某个方向深度越大,在那个方向上考虑的范围越大,相应地,可能包含的像素点个数也越多。注意,不同距离有可能考虑到的像素点个数相同。比如上面5×5的结构体,线段①、③、④、⑥显然操作深度不同,但考虑到的像素点个数都为1。

下面举几个例子说明:
以十字形结转元素来看,它实际上是对我们图像中的每一点作水平和垂直方向的形态学操作。如果结构的大小为3×3,比如下面这个结构:

import cv2 as cv
cross_3x3 = cv.getStructuringElement(cv.MORPH_CROSS, (3, 3))

在这里插入图片描述
那么它在水平方向和垂直方向上的操作深度为1。
再看下面这个大小为5×5的十字形结构:

import cv2 as cv
cross_5x5 = cv.getStructuringElement(cv.MORPH_CROSS, (5, 5))

在这里插入图片描述
上图中的这个结构水平方向和垂直方向对图像上的每一点进行操作,两个方向的操作深度为2。

再看矩形结构元素。
3×3的矩形结构元素如下:

import cv2 as cv
rect_3x3 = cv.getStructuringElement(cv.MORPH_RECT, (3, 3))

在这里插入图片描述
上图中的3x3矩形结构,在八个方向上进行形态学操作,角度分别为0度(水平正方向)、45度、90度(垂直正方向)、135度、180度(水平负方向)、225度、270度(垂直负方向)、315度。操作深度的话在水平方向和垂直方向上为1,在另外的方向操作深度为 2 \sqrt{2} 2
再看下面这个菱形结构元素。

import cv2 as cv
rect_5x5 = cv.getStructuringElement(cv.MORPH_CROSS, (5, 5))
diamond_5x5 = rect_5x5
diamond_5x5[1, 1] = 1
diamond_5x5[1, 3] = 1
diamond_5x5[3, 1] = 1
diamond_5x5[3, 3] = 1

在这里插入图片描述
上面这个菱形结构元素在水平方向、垂直方向、45度、135度、225度、315度方向上对图像上的每一点进行形态学操作,其中水平方向和垂直方向上的操作深度为2,其它方向上的操作深度为 2 \sqrt{2} 2 ,所以我们可以说水平方向和垂直方向上的操作深度比其它方向上的操作深度深。直观来看,除去自身点,在说水平方向和垂直方向上考虑到了两个点,在别的方向上只考虑到了一个点。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值