C++OpenCV对色调接近的图像进行轮廓提取与计算面积与周长

1.概述

本文所使用的图像如下所示:

C++OpenCV对色调接近的图像进行轮廓提取与计算面积与周长_第1张图片

设计步骤如下所示:

  1. 高斯模糊
  2. 灰度化
  3. 二值化
  4. 形态学操作
  5. 轮廓查找
  6. 面积周长计算

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

你可能感兴趣的:(C++OpenCV项目实战,opencv,计算机视觉,人工智能,色调接近轮廓查找)