matlab中的自适应侵蚀和扩张

时间:2018-04-28 07:51:32

标签: matlab image-processing image-morphology

我正在实施适应性扩张和侵蚀。这是来自this earlier one.的后续问题我写了这段代码:

%% dilation and erosion

f = input('Enter the input image for dilation: ');
f_dil = zeros(size(f));
f_ero = zeros(size(f));
padf = padarray(f,[M M],'replicate','both');
padfrow = size(padf,1);
padfcol = size(padf,2);

for i = M+1:padfrow-M
    for j = M+1:padfcol-M
       W = SE{i-M,j-M}.*padf(i-M:i+M,i-M:i+M);
       f_dil(i-M,j-M) = max(max(W));
       f_ero(i-M,j-M) = min(min(W));
    end
end

但我没有获得良好的侵蚀和扩张结果。我不知道用于计算LST和特征值的代码可能有问题!

这些是示例图像及其与我的代码的扩张:

tire.tif

tire_dil.tif

1 个答案:

答案 0 :(得分:0)

你的问题在

W = SE{i-M,j-M}.*padf(i-M:i+M,i-M:i+M);

您正在使用i在图片的两个方向上进行索引。那里需要j

此外,通过乘以SE,您的min将始终为0,这将导致侵蚀全部为黑色。您需要使用SE来编制索引:

W = padf(i-M:i+M,j-M:j+M);
W = W(SE{i-M,j-M});