Matlab中的多尺度形态图像简化

Matlab中的多尺度形态图像简化,matlab,image-processing,morphological-analysis,mathematical-morphology,multiscaleimage,Matlab,Image Processing,Morphological Analysis,Mathematical Morphology,Multiscaleimage,大家好,我目前正在尝试使用SMMT算子的论文“多尺度形态图像简化”在。由于没有订阅就无法访问该页面,我将在此处发布相关详细信息: 请注意,我以图片的形式发布了相关文章的部分内容。我不知道如何在stackoverflow.com中编写公式。我想使用这个SMMT操作符作为图像处理中的预处理步骤。我写下的代码如下: clc;clear all;close all; tic I=imread('handwritten.jpg'); I=I(:,:,1); dim=11 ; HEIGHT=zeros

大家好,我目前正在尝试使用SMMT算子的论文“多尺度形态图像简化”在。由于没有订阅就无法访问该页面,我将在此处发布相关详细信息:

请注意,我以图片的形式发布了相关文章的部分内容。我不知道如何在stackoverflow.com中编写公式。我想使用这个SMMT操作符作为图像处理中的预处理步骤。我写下的代码如下:

clc;clear all;close all;
tic
I=imread('handwritten.jpg');
I=I(:,:,1);

dim=11 ;
HEIGHT=zeros(dim,dim);
sigma=1/10;
for i=-floor(dim/2):floor(dim/2)
    for j=-floor(dim/2):floor(dim/2)
       HEIGHT(i+ceil(dim/2),j+ceil(dim/2))=-(1/sigma).*max(abs(i),abs(j));
    end
end
NHOOD=ones(dim,dim);
se = strel('arbitrary',NHOOD,HEIGHT);
se

IM1 = imdilate(I,se,'same');
IM2 = imerode(I,se,'same');
figure;
subplot(2,2,1),imshow(I)
subplot(2,2,2),imshow(IM1)
subplot(2,2,3),imshow(IM2)

II = I;
for i=1:1
    phi1 = imdilate(II,se,'same');
    phi2 = imerode(II,se,'same');
    for j=1:size(I,1)
        for k=1:size(I,2)
            if ((phi1(j,k)-II(j,k))<(II(j,k)-phi2(j,k)))
                II(j,k) = phi1(j,k);
            elseif ((phi1(j,k)-II(j,k))==(II(j,k)-phi2(j,k)))                
                II(j,k) = II(j,k);
            else
                II(j,k) = phi1(j,k);
            end
        end
    end
end
IM3=II;
subplot(2,2,4),imagesc(IM3,[0 255]);colormap('gray');axis off;
toc
clc;清除所有;全部关闭;
抽搐
I=imread('handritted.jpg');
I=I(:,:,1);
dim=11;
高度=零(变暗,变暗);
西格玛=1/10;
对于i=-楼层(尺寸/2):楼层(尺寸/2)
对于j=-地板(尺寸/2):地板(尺寸/2)
高度(i+ceil(dim/2),j+ceil(dim/2))=-(1/sigma)。*max(abs(i),abs(j));
结束
结束
NHOOD=一(暗,暗);
se=strel(‘任意’、NHOOD、高度);
东南方
IM1=imdiplate(I,se,'相同');
IM2=imerode(I,se,'相同');
图形
imshow(I)子地块(2,2,1)
子地块(2,2,2),imshow(IM1)
子地块(2,2,3),imshow(IM2)
II=I;
对于i=1:1
phi1=扩张(II,se,'相同');
phi2=imerode(II,se,“相同”);
对于j=1:尺寸(I,1)
对于k=1:尺寸(I,2)

如果((phi1(j,k)-II(j,k))这些实现在全球范围内看起来是正常的,尽管有一点需要澄清:

if ((phi1(j,k)-II(j,k))<(II(j,k)-phi2(j,k)))
                II(j,k) = phi1(j,k);

为什么你认为你的实现是不正确的?你有一个具体的问题/问题吗?这不是代码审查。你可以考虑张贴::这个问题似乎是偏离主题,因为它是一个代码审查的要求,更适合。
if ((phi1(j,k)-I(j,k))<(I(j,k)-phi2(j,k)))
                II(j,k) = phi1(j,k);