matlab练习程序(距离变换)


  主要功能是提取图像的骨架,方法是不断对图像进行腐蚀并且标记每个像素腐蚀到值不再变化的次数。

clear all;
close all;
clc;

img=imread('5.jpg');
[m n]=size(img);
m=double(m);
n=double(n);
Min=double(min(img(:)));    %不断腐蚀的结果是像素全为最小值
%Max=double(max(img(:)));    %不断膨胀的结果是像素全为最大值
w = strel('square',3);
imgn=zeros(m,n);
while sum(img(:))~=m*n*Min  %不断腐蚀再腐蚀图像不会有变化为止
    for i=1:m
        for j=1:n
            if img(i,j)~=Min
                imgn(i,j)=imgn(i,j)+1;      %记录这个点腐蚀多少次才到最小值
            end
        end
    end
    img=imerode(img,w);     %不断腐蚀
  %  img=imdilate(img,w);
    figure(1)
    imshow(img);        
end
figure;
imshow(mat2gray(imgn));

效果:

原图

结果图


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM