江西理工大学应用科学学院2014届本科生毕业设计(论文)
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),'三角形')
其中a为图像中心到边缘的最大距离,b为图像中心到边缘的最小距离。如果图像为标准的话,各公式算出的结果应均为1。本程序允许有5%的误差,所以判断参数的范围都是在0.95到1.05之间。程序中各个公式都是根据各种形状的面积计算的特征来确定的。
如椭圆的面积为s??ab。
程序先把图像的边缘提取出来,然后分别计算这几个参数,然后和预设的值逐个进行比较,直到判断出图像是什么形状。
17
江西理工大学应用科学学院2014届本科生毕业设计(论文)
图3-5 基于sobel算法边缘提取及识别分类的结果
对椭圆进行边缘提取,并根据求出的圆形度判断出该图形为椭圆。 判断程序代码如下: a=max(khoangcach{k}); b=min(khoangcach{k}); c=dt(k).Area; elip =c/(a*b*pi);
elseif (elip < 1.05 ) & (elip > 0.95 )
text(s(k).Centroid(1)-20,s(k).Centroid(2),'椭圆')
18
江西理工大学应用科学学院2014届本科生毕业设计(论文)
图3-6 基于sobel算法边缘提取及识别分类的结果
对三角形进行边缘提取,并根据求出的圆形度和矩判断出该图形为三角形。 判断程序代码如下: a=max(khoangcach{k}); b=min(khoangcach{k}); c=dt(k).Area;
tamgiacdeu=(c*3^0.5)/((a+b)^2);
elseif (tamgiacdeu < 1.05 ) & (tamgiacdeu > 0.95 )
text(s(k).Centroid(1)-20,s(k).Centroid(2),'三角形')
19
江西理工大学应用科学学院2014届本科生毕业设计(论文)
图3-7 基于sobel算法边缘提取及识别分类的结果
对圆进行边缘提取,并根据求出的圆形度和矩判断出该图形为圆。 判断程序代码如下: a=max(khoangcach{k}); b=min(khoangcach{k}); dolech=a-b; if dolech < 10
text(s(k).Centroid(1)-20,s(k).Centroid(2),'圆')
20
江西理工大学应用科学学院2014届本科生毕业设计(论文)
图3-8 基于sobel算法边缘提取及识别分类的结果
对菱形进行边缘提取,并根据求出的圆形度和矩判断出该图形为菱形。 判断程序代码如下: a=max(khoangcach{k}); b=min(khoangcach{k}); c=dt(k).Area;
thoi= (c*( a^2 - b^2 )^0.5) / (2*a^2*b) elseif (thoi < 1.05 ) & (thoi > 0.95 )
text(s(k).Centroid(1)-20,s(k).Centroid(2),'菱形')
21
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于matlab的图像形状与分类 - 毕业设计(5)在线全文阅读。
相关推荐: