轮廓之外的区域与轮廓之内反色填充c++
时间: 2024-06-14 12:05:10 浏览: 100
以下是使用C++调用OpenCV实现轮廓之外的区域与轮廓之内反色填充的代码示例:
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 读取图像
Mat image = imread("input.jpg", IMREAD_GRAYSCALE);
// 二值化处理
Mat binary;
threshold(image, binary, 128, 255, THRESH_BINARY);
// 轮廓检测
std::vector<std::vector<Point>> contours;
findContours(binary, contours, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE);
// 创建掩膜图像
Mat mask = Mat::zeros(image.size(), CV_8UC1);
// 在掩膜图像上绘制轮廓
drawContours(mask, contours, -1, Scalar(255), FILLED);
// 反色填充
bitwise_not(image, image, mask);
// 显示结果
imshow("Result", image);
waitKey(0);
return 0;
}
```
请注意,上述代码假设你已经安装了OpenCV库,并且将输入图像命名为"input.jpg"。代码首先读取图像并进行二值化处理,然后进行轮廓检测并创建一个掩膜图像,最后在掩膜图像上绘制轮廓并进行反色填充。最终结果将显示在窗口中。
阅读全文