我正在实施适应性扩张和侵蚀。这是来自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和特征值的代码可能有问题!
这些是示例图像及其与我的代码的扩张:
答案 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});