附录
for k=1:dim(1) b= boundaries{k}; dim = size(b); for i=1:dim(1)
khoangcach{k}(1,i) = sqrt ( ( b(i,2) - s(k).Centroid(1) )^2 + ( b(i,1) - s(k).Centroid(2) )^2 );
end
a=max(khoangcach{k}); b=min(khoangcach{k}); c=dt(k).Area; dolech=a-b; vuong = c/(4*b^2);
chunhat=c/(4*b*(a^2-b^2)^0.5); tamgiacdeu=(c*3^0.5)/((a+b)^2); elip =c/(a*b*pi);
thoi= (c*( a^2 - b^2 )^0.5) / (2*a^2*b); if dolech < 10
text(s(k).Centroid(1)-20,s(k).Centroid(2),'圆'); elseif (vuong < 1.05 ) & (vuong > 0.95 )
text(s(k).Centroid(1)-20,s(k).Centroid(2),'正方形'); elseif (elip < 1.05 ) & (elip > 0.95 )
text(s(k).Centroid(1)-20,s(k).Centroid(2),'椭圆'); elseif (thoi < 1.05 ) & (thoi > 0.95 )
text(s(k).Centroid(1)-20,s(k).Centroid(2),'菱形'); elseif ((chunhat <1.05) & (chunhat >0.95))
text(s(k).Centroid(1)-20,s(k).Centroid(2),'长方形'); elseif (tamgiacdeu < 1.05 ) & (tamgiacdeu > 0.95 ) text(s(k).Centroid(1)-20,s(k).Centroid(2),'三角形'); end end
% hObject handle to Recognize (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
32
附录
function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit1 as text
% str2double(get(hObject,'String')) returns contents of edit1 as a double
% --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if
ispc
&&
isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
采用canny算法进行边缘提取和分类识别的主程序 format long i=imread('t2.bmp'); imshow(i); a=rgb2gray(i); bw=edge(a,'canny'); imshow(bw);
bw = bwareaopen(bw,30); se = strel('disk',2); bw = imclose(bw,se); bw = imfill(bw,'holes'); imshow(bw);
33
附录
L = bwlabel(bw);
s = regionprops(L, 'centroid'); dt = regionprops(L, 'area'); cv = regionprops(L, 'perimeter'); dim = size(s)
BW_filled = imfill(bw,'holes'); boundaries = bwboundaries(BW_filled); imshow(bw); figure;imshow(i); hold on; for k=1:dim(1) b= boundaries{k}; dim = size(b) for i=1:dim(1)
khoangcach{k}(1,i) = sqrt ( ( b(i,2) - s(k).Centroid(1) )^2 + ( b(i,1) - s(k).Centroid(2) )^2 )
end
a=max(khoangcach{k}); b=min(khoangcach{k}); c=dt(k).Area; dolech=a-b; vuong = c/(4*b^2)
chunhat=c/(4*b*(a^2-b^2)^0.5); tamgiacdeu=(c*3^0.5)/((a+b)^2); elip =c/(a*b*pi);
thoi= (c*( a^2 - b^2 )^0.5) / (2*a^2*b) if dolech < 10
text(s(k).Centroid(1)-20,s(k).Centroid(2),'圆') elseif (vuong < 1.05 ) & (vuong > 0.95 )
text(s(k).Centroid(1)-20,s(k).Centroid(2),'正方形') elseif (elip < 1.05 ) & (elip > 0.95 )
text(s(k).Centroid(1)-20,s(k).Centroid(2),'椭圆') elseif (thoi < 1.05 ) & (thoi > 0.95 )
text(s(k).Centroid(1)-20,s(k).Centroid(2),'菱形')
34
附录
elseif ((chunhat <1.05) & (chunhat >0.95))
text(s(k).Centroid(1)-20,s(k).Centroid(2),'长方形') elseif (tamgiacdeu < 1.05 ) & (tamgiacdeu > 0.95 ) text(s(k).Centroid(1)-20,s(k).Centroid(2),'三角形') end end
35
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于matlab的图像形状与分类 - 毕业设计(8)在线全文阅读。
相关推荐: