findContours函数 c++
时间: 2024-01-27 15:14:49 浏览: 81
findContours函数是OpenCV库中用于轮廓检测和分析的函数,它可以帮助我们找到图像中的轮廓,并计算出轮廓的面积、周长、几何矩、质心、凸包、最小外接矩形等特征。
以下是findContours函数的C++示例代码:
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 读取图像
Mat image = imread("image.jpg", IMREAD_GRAYSCALE);
// 预处理图像
Mat binary;
threshold(image, binary, 128, 255, THRESH_BINARY);
// 寻找轮廓
vector<vector<Point>> contours;
vector<Vec4i> hierarchy;
findContours(binary, contours, hierarchy, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE);
// 绘制轮廓
Mat result(image.size(), CV_8UC3, Scalar(0, 0, 0));
drawContours(result, contours, -1, Scalar(0, 0, 255), 2);
// 显示结果
imshow("Contours", result);
waitKey(0);
return 0;
}
```
这段代码首先读取一张灰度图像,然后对图像进行二值化处理。接下来,使用findContours函数找到图像中的轮廓,并将轮廓存储在contours向量中。最后,使用drawContours函数将轮廓绘制在结果图像上,并显示出来。
阅读全文