C++ OpenCV 图像目标轮廓检测教程:完整代码示例
在 C++ 中使用 OpenCV 查找图像中的目标轮廓需要以下步骤:
-
读取图像:使用
imread函数读取需要处理的图像。 -
预处理图像:对图像进行灰度化、二值化等预处理操作。
-
查找轮廓:使用
findContours函数查找图像中的轮廓。 -
绘制轮廓:使用
drawContours函数将轮廓绘制在图像上。
下面是一个简单的示例代码:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 读取图像
Mat img = imread('test.jpg');
// 灰度化
Mat gray;
cvtColor(img, gray, COLOR_BGR2GRAY);
// 二值化
Mat binary;
threshold(gray, binary, 0, 255, THRESH_BINARY | THRESH_OTSU);
// 查找轮廓
vector<vector<Point>> contours;
vector<Vec4i> hierarchy;
findContours(binary, contours, hierarchy, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE);
// 绘制轮廓
Mat result = img.clone();
drawContours(result, contours, -1, Scalar(0, 0, 255), 2);
// 显示结果
imshow('result', result);
waitKey(0);
return 0;
}
在这个示例代码中,我们先读取了一张图像,然后对其进行了灰度化和二值化处理。接着使用 findContours 函数查找图像中的轮廓,最后使用 drawContours 函数将轮廓绘制在图像上并显示结果。
原文地址: https://www.cveoy.top/t/topic/jOs6 著作权归作者所有。请勿转载和采集!