資源簡(jiǎn)介
只要裝有matlab就能跑通代碼,采用的均值漂移(mean shift)方法進(jìn)行圖像分割。

代碼片段和文件信息
function?tu=keyprogram(?)?
rgb=imread(‘test.png‘);
rgb=im2double(rgb);?
r=rgb(::1);?
g=rgb(::2);?
b=rgb(::3);?
num=0.5*((r-g)+(r-b));?
den=sqrt((r-g).^2+(r-b).*(g-b));?
theta=acos(num./(den+eps));?
H=theta;?
H(b>g)=2*pi-H(b>g);?
H=H/(2*pi);?
num=min(min(rg)b);?
den=r+g+b;?
den(den==0)=eps;?
S=1-3.*num./den;?
H(S==0)=0;?
I=(r+g+b)/3;?
S=im2uint8(S);
H=im2uint8(H);
I=im2uint8(I);
S=double(S);H=double(H);I=double(I);
[mn]=size(S);
figure;imshow(uint8(S));figure;imshow(uint8(H));figure;imshow(uint8(I));
S1=S;
h1=H;i1=I;
for?i=1:m
????for?j=1:n
????????if?(S(ij)>=100)
????????????S1(ij)=255;
????????else?S1(ij)=0;
????????end
????end
end
figure;imshow(uint8(S1));
for?i=1:m
????for?j=1:n
????????if?(S1(ij)==0)
????????????H(ij)=0;
????????end
????end
end
H1=meanshift(H);
figure;imshow(uint8(H1));
for?i=1:m
????for?j=1:n
????????if?(S1(ij)==255)
????????????I(ij)=0;
????????end
????end
end
I1=meanshift(I);
figure;imshow(uint8(I1));
for?i=1:m
????for?j=1:n
????????if?(S1(ij)==0)
????????????H1(ij)=h1(ij);
????????end
????end
end
for?i=1:m
????for?j=1:n
????????if?(S1(ij)==255)
????????????I1(ij)=i1(ij);
????????end
????end
end
hsi=cat(3H1S1I1);
figure;imshow(uint8(hsi));
end
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????1281??2018-10-24?20:03??基于均值漂移(mean?shift)算法的圖像分割\keyprogram.m
?????文件???????1239??2010-12-04?13:44??基于均值漂移(mean?shift)算法的圖像分割\meanshift.m
?????文件????????251??2018-10-24?20:12??基于均值漂移(mean?shift)算法的圖像分割\readme.txt
?????文件?????272694??2006-09-13?17:25??基于均值漂移(mean?shift)算法的圖像分割\tree.bmp
?????目錄??????????0??2018-10-24?20:11??基于均值漂移(mean?shift)算法的圖像分割
-----------?---------??----------?-----??----
???????????????275465????????????????????5
評(píng)論
共有 條評(píng)論