数字图像处理(第三版)习题9.2
习题 9.2
题目:
分析:
(a)首先得先找一些8连通的单一厚度的例子进行观察,然后分析如何变成m连通,接着把上面的方法通过形态学方法实现。
疑问:翻译有问题?这里按照英文的8连通做。边界连通是什么意思?
(b)问题等价于,进行一轮处理之后,会不会有由于前面的操作新生成的8连接,或者说是一轮操作能否将8连接转换成m连接。先用上面的三个例子试验一下,观察情况。
(c)很显然,在使用SE进行击中操作时,由于SE使用的顺序,产生的结果是由差异的。举个反例。
解答:
例子用figure9.26,figure9.25,figure9.22
把上面的8连通的边界变成m连通的边界。
只要把图中蓝笔圈中的方块去掉就行。
问题就转换成找到图中的选中方块,然后去除。选中操作考虑用“击中”的方法。接下来考虑设计SE结构元。
击中的用的结构元SE中心设为需要去除的方块,从简单的3x3的SE,显然以上的操作无法通过一个SE完成,需要一组SE。
通过简单的观察可以发现,要匹配(击中)的模式有四种,向左上角凸,向左下角凸,向右上角凸,向右下角凸。
先考虑,向左上角凸的SE:
SE1=
0 | 0 | x |
0 | 1 | 1 |
x | 1 | 0 |
先将原点和其右边和下边的1填上,右下角为0,因为如果时1的话,不满足厚度为1的假设。左上角的位置,如果是1,击中之后去除原点的1的话,会使得边界断开来,所以该位置为0。记下来考虑正上方的位置,如果为1,不符合向左上角凸的前提,无法击中相应的样式,所以该位置0,同样的分析左边的的位置也为0。右上角和左下角的位置,按照上面图上的样子可以为0或者1,这里用x表示。
剩下的三种SE可以看作是刚得出的SE旋转得到,分别为
SE2=
x | 1 | 0 |
0 | 1 | 1 |
0 | 0 | x |
SE3=
x | 0 | 0 |
1 | 1 | 0 |
0 | 1 | x |
SE4=
0 | 1 | x |
1 | 1 | 0 |
x | 0 | 0 |
A表示原图像,先利用击中或击不中(hit-or-miss),
然后从A中剔除
然后使用SE2,SE3,SE4依次进行击中或不击中,剔除操作,得到最后的结果。
(b)
经过一轮的转换,发现被蓝笔圈中的方块会被去除,红色的方块还被保留,即使多次进行迭代操作也无法去除该红色的方块。考虑修改结构元(SE),将SE的条件放宽,SE变成如下的样子,其余的SE也做相应的改变。
SE1=
0 | x | x |
x | 1 | 1 |
x | 1 | 0 |
对上面列出的三个例子,进行一轮操作,结果能够达到将8连接转换成m连接。不需要进行迭代。
而且,如果需要迭代,则是因为一论操作之后产生了新的能够被SE击中的结构。以SE1为例,如果将SE1中的0变为1,变成一轮操作之前的原图像,则图像违背了边界是1个像素的假设,所以不成立。
(c)举例说明,转换的结果与SE使用的顺序有关
加入先使用SE2后使用SE3,则蓝色的方块会被提剔除,反过来,如果先用SE3后使用SE2,则红色方块会被剔除。
两种方式都会完成转换,但是显然结果是不相同的。