我有以下矩阵:
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
1 1 0 0 0 0 0
1 0 0 0 0 1 1
1 0 0 0 0 1 1
我想用以下结构元素来扩展它:
1 0 0
1 1 1
1 1 1
我已经在 Matlab 上进行了膨胀,但结果与我手动做的不匹配。所以我想我在这里遗漏了一些东西。据我所知,如果结构元素的任何“1”触及矩阵中的任何“1”,则意味着它是命中,当前窗口的中心应设置为 1。如果我在这种时尚我会得到关注(不考虑边缘):
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 1 1 0 0 0 0
1 1 1 0 1 1 0
1 1 1 0 1 1 1
1 0 0 0 0 1 1
但是Matlab给出了以下结果:
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
1 **0** **0** 0 0 0 0
1 1 1 0 1 1 0
1 1 1 0 1 1 1
1 1 0 0 1 1 1
在不考虑边缘的情况下,它几乎看起来像我的结果,但在我的结果中以粗体样式设置的像素为“1”,但在 Matlab 的结果中为“0”。我究竟做错了什么?那些'0'下面的像素是原始图像中的'1',当窗口的中心在那些'0'上时,结构元素在那个空间有'1',所以它是一个命中并且中心必须设置为'1'但是Matlab 不这样做。谁能解释我为什么?我在这里错过了什么重要的东西吗?