matlab - 图像膨胀错误

标签 matlab image-processing

我知道在这里提出有关黑客等级的问题是不合适的。但是这个简单部分的问题让我非常困难,我开始怀疑我的图像处理概念。

他们给出了一张图片

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:我在底部添加了一行零。我这样做是为了遵守“原点位于左下角”的要求。

我希望这张图能解释更多: enter image description here

正如您所看到的,根据matlab's strel doc,要求strel的“原点”将是左下角。 :

The center (or origin) of nhood is its center element, given by floor((size(nhood) + 1)/2).

为了使垂直中心位于第二行(而不是第一行),我在 strel 中添加了一个空行。

关于matlab - 图像膨胀错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35967004/

相关文章:

matlab - 生成2个随机数

windows - Mac 和 Windows 之间的 Matlab GUI 兼容性(显示)

php - move_uploaded_file 不起作用,没有错误

python - 如何将归一化图像数学方程转换为Python?

matlab - 如果变量小于 1,如何使用 Matlab 显示零

matlab - 使用 Socket.io 和 Matlab

matlab - 使用多个索引向量查找和计算字符串

python - 高斯滤波器后合并接近的对象

javascript - NodeJS 图像处理/分析可能吗?

image-processing - OpenCV 检测角点