資源簡介
高分辨率SAR圖像高速公路快速檢測方法,該方法基于高速公路的反射特性和形狀特征,先對圖像做二值化分割處理,統計每個暗區域的特征參數,刪除形狀復雜的區域,對道路邊緣分段迭代直線擬合將道路區域從背景區域中檢測出來
代碼片段和文件信息
x=imread(‘road1.png‘);
x=x(1:2031:203);
y=x;
%figure(1);
%imhist(x200);
%title(‘histogram?of?original?image‘);
for?i?=?1:203;
????h(i)?=?sum(sum(x==i-1));
????end
????s?=?sum(h);
for?i=?1:203;
????j=?find(x==i-1);
????y(j)=sum(h(1:i))/s*203;
????end
%figure(2);
%imshow(x);
%figure(3);
%imshow(y);
%title(‘result?of?equalizition‘);
%figure(4);
%imhist(y200);
%title(‘histogram?of?result?of?histogram?equalization‘);
%[name?path]=uigetfile(y);?%出現打開文件界面?
%filename=[path?name];???????????%獲取文件的路徑與文件名
%I=rgb2gray(imread(filename));?%??讀圖并轉化為黑白圖片
%以下為閾值計算程序
Ni=imhist(y);%計算直方圖數組
N=sum(Ni);???%總像素點個數
delamax=0;???%類間方差最大值
threshold=0;?%閾值
for?k=2:255
??u=dot([0:255]Ni/N);?%圖像的總平均灰度級
??w0=sum(Ni(1:k)/N);??%C0類像素所占面積的比例
??w1=1-w0;????????????%C1類像素所占面積的比例
??if?w0==0|w0==1??????%當w0為1或0時提前結束本次循環
?????continue?
??end
??u0=dot([0:k-1]Ni(1:k)/N)/w0;???%C0類像素的平均灰度
??u1=dot([k:255]Ni(k+1:256)/N)/w1;?%C1類像素的平均灰度
????dela(k)=w0*(u-u0)^2+w1*(u-u1)^2;??%類間方差公式
??%求出類間方差的最大值,最大時的那個值對應的k值存入delamax
??if?dela(k)>delamax????
??????delamax=dela(k);
??????threshold=k-1;
??end
end
%以下為閾值分割程序
[widthheight]=size(y);%獲取圖片寬高
for?i=1:width
????for?j=1:height
????????if(y(ij) ????????????BW1(ij)=0;
????????else
????????????BW1(ij)=1;?%?灰度大于閾值時則為白色
????????end
????end
end
figure(1);
imshow(BW1)title(‘自編程序運行結果‘)%顯示圖片
disp(‘自編程序求的的歸一化閾值:‘)%顯示提示信息
disp(threshold/255)??????????????%顯示結果
%調用系統函數OTSU閾值分割
level=graythresh(y);%調用系統函數計算閾值
BW2=im2bw(ylevel);?%閾值分割
figure(2);
imshow(BW2)title(‘調用系統函數運行結果‘)
disp(‘調用庫函數求得的歸一化閾值:‘)
disp(level);
img0=BW2;se=strel(‘disk‘1);
img1=imerode(img0se);se=strel(‘disk‘2);
img2=imerode(img0se);se=strel(‘disk‘3);
img3=imerode(img0se);figure(3);
subplot(221);imshow(img0);title(‘original?ima
- 上一篇:數值積分 matlab代碼
- 下一篇:matpower ieee33 case
評論
共有 條評論