我知道在这里提出有关黑客等级的问题是不合适的。但是这个简单部分的问题让我非常困难,我开始怀疑我的图像处理概念。
他们给出了一张图片
0 0 0 0
0 1 1 0
0 0 0 0
结构元素为
1 0
1 1
原点位于左下角。
我得到的扩张输出为
0 0 0 0
1 1 1 0
0 1 1 0
(因为根据结构元素,我必须查看原点顶部和右侧的明亮像素)。我什至用Matlab验证过。
But why hacker rank is not accepting my output ? Or am I missing a core concept of binary image dilation ?
最佳答案
我得到的结果略有不同
bw = [ 0 0 0 0; 0 1 1 0; 0 0 0 0];
imdilate(bw,[1 0;1 1;0 0])
ans =
0 1 1 0
0 1 1 1
0 0 0 0
请注意,我使用了略有不同的 strel
:我在底部添加了一行零。我这样做是为了遵守“原点位于左下角”的要求。
正如您所看到的,根据matlab's strel
doc,要求strel的“原点”将是左下角。 :
The center (or origin) of
nhood
is its center element, given byfloor((size(nhood) + 1)/2)
.
为了使垂直中心位于第二行(而不是第一行),我在 strel
中添加了一个空行。
关于matlab - 图像膨胀错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35967004/