这是我自己做作业的时候写的一点东西,判断一张图片中的形状(图片如下,放到其他图片的话可能就不适用了),所以仅供参考,自己水平确实比较低,希望大家不喜勿喷~
我们使用的图片如下:
结果如下:
下面稍微介绍一下我自己的处理方法:
1.首先是将彩色变灰度。
2.因为图片含有边框,所以首先对边框进行处理,将边框去除。 去除后的图形如图3. 可以看到边上的圆有点变形,不过不影响形状的判断,
只是会影响质心位置的计算。
3. 为了计算质心。 先对图形进行边缘提取,然后计算每块区域所有点的位置坐标平均值,即质心坐标
4.计算每块区域边缘点到质心的距离,进行曲线拟合。根据极点的数目判断图形的形状。
5.把区域的形状标在图片中
我的matlab代码
f4=imread('Project2016.jpg'); %读取图像
imshow(f4)
a=rgb2gray(f4); %将彩色图像转换成灰度图像
a_size = size(a);
b = ones