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