主要功能是提取圖像的骨架,方法是不斷對圖像進行腐蝕並且標記每個像素腐蝕到值不再變化的次數。
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));
效果:
原圖
結果圖