資源簡介
基于matlab的高帽變換,能很好地處理圖像,實現圖像的增強,線性特征的提取,為后續的處理做準備
代碼片段和文件信息
clear?all;
close?all;%‘Fig2.22(a).jpg‘
a=imread(‘C:\Documents?and?Settings\txp\My?Documents\MATLAB\New?folder\cloud.jpg‘);
[nm]=size(a);
figuresubplot(121)imshow(a);title(‘orignial?image‘);
a=double(a);
b=zeros(19);
e=zeros(nm);
f=zeros(nm);
for?i=2:(n-1)
????for?j=2:(m-1)
????????b(11)=-1+a(i-1j-1);
????????b(12)=-2+a(i-1j);
????????b(13)=-3+a(i-1j+1);
????????b(14)=-4+a(ij-1);
????????b(15)=-5+a(ij);
????????b(16)=-6+a(ij+1);
????????b(17)=-7+a(i+1j-1);
????????b(18)=-8+a(i+1j);
????????b(19)=-9+a(i+1j+1);
????????min=255;
????????for?k=1:9?????????
????????????if?b(1k) ????????????????min=b(1k);
????????????end
????????end
????????e(ij)=min;
????end
end
for?i=2:(n-1)
????for?j=2:(m-1)
????????b(11)=1+e(i-1j-1);
????????b(12)=2+e(i-1j);
????????b(13)=3+e(i-1j+1);
????????b(14)=4+e(ij-1);
????????b(15)=5+e(ij);
????????b(16)=6+e(ij+1);
????????b(17)=7+e(i+1j-1);
????????b(18)=8+e(i+1j);
????????b(19)=9+e(i+1j+1);
????????max=0;
????????for?k=1:9
????????????if?b(1k)>max
????????????????max=b(1k);
????????????end
??????end
????????f(ij)=max;
????end
end
c=a-f;
c=uint8(c);
subplot(122)imshow(c);title(‘top-hat‘);
%?[rowcolumn]=size(c);
%?g=im2double(c);
%?x=1:column;?y=1:row;?[xy]=meshgrid(xy);figuremesh(xyg);
%?title(‘orignial?image?gray?level‘);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????48314??2006-03-21?22:46??top-hat\Fig2.22(a)-result.jpg
?????文件??????49292??2001-07-16?23:23??top-hat\Fig2.22(a).jpg
????..A.SH.??????7680??2012-02-27?20:15??top-hat\Thumbs.db
?????文件???????1415??2011-06-21?19:50??top-hat\tophat.asv
?????文件???????1379??2011-06-24?14:42??top-hat\tophat.m
?????目錄??????????0??2012-02-27?20:15??top-hat
-----------?---------??----------?-----??----
???????????????108080????????????????????6
評論
共有 條評論