基于matlab的图像形状与分类 - 毕业设计(8)

2019-01-26 18:33

附录

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


基于matlab的图像形状与分类 - 毕业设计(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:江苏省盐都区高中化学铁、铜及其化合物的应用导学案 新人教版必

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: