写一个c++程序,将图像中的蓝色转化为白色
时间: 2023-12-03 21:44:22 浏览: 133
C++ opencv实现的把蓝底照片转化为白底照片功能完整示例
以下是一个基于OpenCV库的C++程序,可以将图像中的蓝色区域转化为白色区域:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
// 读取图像
Mat image = imread("test.jpg");
// 蓝色色彩空间的阈值范围
Scalar lower_blue = Scalar(100, 0, 0);
Scalar upper_blue = Scalar(255, 100, 100);
// 将图像转换为HSV色彩空间
Mat hsv_image;
cvtColor(image, hsv_image, COLOR_BGR2HSV);
// 根据阈值范围获取蓝色区域掩码
Mat blue_mask;
inRange(hsv_image, lower_blue, upper_blue, blue_mask);
// 将蓝色区域像素值设为白色
image.setTo(Scalar(255, 255, 255), blue_mask);
// 显示输出图像
imshow("Output Image", image);
waitKey(0);
return 0;
}
```
在上述代码中,我们首先读取了一张名为“test.jpg”的图像。然后,我们定义了蓝色色彩空间的阈值范围,将图像转换为HSV色彩空间,并使用inRange函数获取蓝色区域掩码。最后,我们使用setTo函数将蓝色区域的像素值设为白色,并显示输出图像。
阅读全文