資源簡介
鏈碼直線檢測,采用求取圖像邊界,然后邊界跟蹤,判別直線
代碼片段和文件信息
clcclear;close?all;
tic;
%I=?rgb2gray(imread(‘000.bmp‘));%jaynes-thesis
%H=fspecial(‘a(chǎn)verage‘3);
%Z=imfilter(RGBH);
%I=Z;??%?圖片用的是灰度圖像,%?I=histeq(I256);
%BW=edge(I‘canny‘);
%?figure;imshow(I);title(‘原圖‘);
%?figureimshow(Z);title(‘均值濾波‘);
%?figure;imshow(BW);title(‘邊緣檢測圖像‘);axis?on
%BW?=?bwareaopen(BW608);
%%%%%%%%%%%%%%%%%%%%%%%實際灰度圖像%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?
%?clear;
%?close?all;
?RGB=imread(‘000.bmp‘);
?ratio1=0.5;
?I=rgb2gray(imresize(RGBratio1));
%?%?I0=imresize(I0[256256]‘bicubic‘);
%?%?figure;
%?%?imshow(I0);
%?%?title(‘original?image‘);
%?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?類型轉(zhuǎn)換?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%?info=imfinfo(‘000.bmp‘);
%??switch?info.ColorType
%?????case?‘truecolor‘
%?????????I1=rgb2gray(I0);
%?????case?‘indexed‘????
%?????????I1=ind2gray(I0);
%?????case?‘grayscale‘
%?????????I1=I0;
%??end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?邊緣提取?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
BW=edge(I‘canny‘);
%?figure;
%?imshow(BW);
%?title(‘edge?image‘);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%??????????????????去掉一些交叉點
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
BW1=BW;
w=2;??????????%?window?size=2*w+1
for?i=1+w:size(BW11)-w
????for?j=1+w:size(BW12)-w
????temp=BW1(i-w:i+wj-w:j+w);????
?????tt=sum(sum(temp));??
?????if?tt>5;
?????????BW1(ij)=0;????????????????%??去掉交叉點
?????end????
????end
end
%?figure;
%?imshow(BW1[]);
%?title(‘delete?cross?point‘);
%????????????????selected?interest?curve?segment去掉小線段去掉了長度小于15的線段
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
I1=BW1;
L?=?bwlabel(I18);
I2=zeros(size(I1));
for?i=1:max(max(L))
????[rc]?=?find(L?==?i);???
????if?length(r)>=25??????%?delete?small?line?segment
????????for?j=1:length(r)
????????????I2(r(j1)c(j1))=1;
????????end
????????
????end
end
%?figure;
%?imshow(I2[]);
B=boundaries(I28‘cw‘);
%?figure;imshow(BW);title(‘8聯(lián)通領(lǐng)域圖像標(biāo)記‘);axis?on;hold?on;
%?%figure
%?for?i=1:size(B1)
%?????i
%?????a=rand;
%?????b=rand;
%?????c=rand;
%?????for?j=1:size(B{i}1)
%?????????plot(B{i}(j2)B{i}(j1)‘color‘[abc]);
%?????????hold?on;
%?????end
%?????text(B{i}(12)B{i}(11)num2str(i)‘color‘[111]);
%?end
Code=cell(size(B1)1);
for?i=1:size(B1)
????Code{i}=creatcodel(B{i});
end
SubCode=cell(size(B1)1);
for?i=1:size(B1)
????SubCode{i}=creatsubcode(Code{i});
end
%%%%%%%差分鏈碼統(tǒng)計
%?FreS=cell(size(SubCode2)1);
%?for?i=1:size(SubCode2)?
%?????Frequence=[00000000];
%?????for?j=1:size(SubCode{i}2)?????????%對SubCode中各成分?jǐn)?shù)目的統(tǒng)計??????
%?????????switch(SubCode{i}(j))
%?????????????case?{0}
%?????????????????Frequence(1)=Frequence(1)+1;
%?????????????case?{1}
%?????????????????Frequence(2)=Frequence(2)+1;
%????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????4734??2012-09-13?19:53??鏈碼檢測直線.m
- 上一篇:GUI界面設(shè)計并附有案例
- 下一篇:hmm 自己修改的程序代碼
評論
共有 條評論