用c++opencv写一个drawContours轨迹为红色的代码
时间: 2024-04-21 17:22:23 浏览: 8
当然可以!以下是使用C++和OpenCV库编写绘制红色轮廓的示例:
```cpp
#include <opencv2/opencv.hpp>
int main()
{
// 读取图像
cv::Mat image = cv::imread("your_image.jpg");
// 转换为灰度图像
cv::Mat gray;
cv::cvtColor(image, gray, cv::COLOR_BGR2GRAY);
// 进行二值化处理
cv::Mat binary;
cv::threshold(gray, binary, 127, 255, cv::THRESH_BINARY);
// 查找轮廓
std::vector<std::vector<cv::Point>> contours;
std::vector<cv::Vec4i> hierarchy;
cv::findContours(binary, contours, hierarchy, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_SIMPLE);
// 创建空白画布
cv::Mat canvas = cv::Mat::zeros(image.size(), CV_8UC3);
// 绘制轮廓
for (size_t i = 0; i < contours.size(); i++)
{
cv::Scalar color(0, 0, 255); // 设置红色
cv::drawContours(canvas, contours, static_cast<int>(i), color, 2, 8);
}
// 显示结果
cv::imshow("Contours", canvas);
cv::waitKey(0);
return 0;
}
```
请确保在代码中将"your_image.jpg"替换为你要处理的图像路径。此代码将读取图像,将其转换为灰度图像,进行二值化处理,然后找到轮廓并将其绘制在空白画布上,轮廓的颜色为红色。最后,显示结果并等待按键退出。
希望这可以帮助到你!如果有任何问题,请随时问我。