用c++代码实现:yolov5 分割出来的opencv mask绘制在原图上
时间: 2024-03-13 22:43:13 浏览: 84
yolov3+opencv3.4.2 C++源码.rar
5星 · 资源好评率100%
以下是用 C++ 代码实现将 YOLOv5 分割出来的 OpenCV mask 绘制在原图上的示例代码:
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 读取原图和 mask
Mat originalImage = imread("original.jpg");
Mat mask = imread("mask.jpg");
// 将 mask 转换为灰度图
cvtColor(mask, mask, COLOR_BGR2GRAY);
// 将灰度图转换为二值图
threshold(mask, mask, 128, 255, THRESH_BINARY);
// 为原图添加 mask
Mat result;
originalImage.copyTo(result, mask);
// 显示结果
imshow("Result", result);
waitKey(0);
return 0;
}
```
上述代码中,`original.jpg` 是原始图像,`mask.jpg` 是 YOLOv5 分割出来的 mask,我们首先将 mask 转换为灰度图,然后将其转换为二值图,接着使用 `copyTo` 函数将原图上的 mask 区域替换为灰度图中的非零像素值,最后显示结果即可。
需要注意的是,此代码仅适用于 YOLOv5 分割出的 mask,如果是其他类型的 mask,可能需要进行一些修改。
阅读全文