【发布时间】:2013-02-12 14:02:13
【问题描述】:
我正在尝试在 matlab 中编写自己的扩张和侵蚀函数。我有一个可行的实现,但它改变了输出图像的大小。
这就是我所拥有的:
侵蚀
function eroded = erode(X)
eroded = col2im(min(im2col(X, [3 3])), [3 3], size(X));
end
扩张
function dilated = dilate(X)
dilated = col2im(max(im2col(X, [3 3])), [3 3], size(X));
end
这些在视觉上可以工作,但是当我尝试覆盖用它们制作的区域时,它会变得一团糟,因为图像矩阵的尺寸已经改变。我发现问题出在col2im 或im2col。谁能告诉我我做错了什么?
玩弄它,我发现它可能与min 和max 如何将变换矩阵中的列大小减小到 1 有关。
【问题讨论】:
-
第二个函数应该是
function f= Dilate(X)...对吧?