1.概述
本文所使用的图像如下所示:
设计步骤如下所示:
- 高斯模糊
- 灰度化
- 二值化
- 形态学操作
- 轮廓查找
- 面积周长计算
2.具体实现
2.1高斯模糊
由于陨石的周围有许多的小块,因此当做噪点处理,可以使用高斯模糊
GaussianBlur(image, gaussianImage, Size(7, 7), 0, 0);
2.2二值化
由于图像的色调比较接近,所以这张图像是一张单峰图。所以进行自动化阈值操作时,选择THRESH_BINARY|THRESH_TRIANGLE。如下所示:
cvtColor(image, gray, COLOR_BGR2GRAY);
threshold(gray, binaryImage, 0, 255, THRESH_BINARY|THRESH_TRIANGLE);
imshow("binary", binaryImage);
2.3形态学操作
这里采用的是闭操作,进行先腐蚀后膨胀,为了填充中间的小洞区域。
//形态学操作
Mat morphImg;
Mat kernel = getStructuringElement(MORPH_RECT, Size(5, 5), Point(-1, -1));
morphologyEx(bina