案例背景:下图为一张卫星拍摄的图片,要获取其中岛屿的周长和面积
方案思路:高斯模糊去噪,灰度二值化提取轮廓,闭操作填充缝隙 或小的孔洞,寻找轮廓,通过轮廓特征选择轮廓
#include<opencv2\opencv.hpp>
using namespace cv;
using namespace std;
int main(int arc, char** argv) {
Mat src = imread("1.jpg");
namedWindow("input", CV_WINDOW_AUTOSIZE);
imshow("input", src);
//该高斯模糊去噪
GaussianBlur(src, src, Size(15, 15), 0, 0);
imshow("output1", src);
//灰度二值化
Mat gray,binary;
cvtColor(src, gray, CV_BGR2GRAY);
threshold(gray, binary, 0, 255, THRESH_BINARY | THRESH_TRIANGLE);
imshow("output2", binary);