写一个c++程序,可以提取图像中的蓝色部分
时间: 2023-12-03 09:44:25 浏览: 24
以下是一个基本的C++程序,可以使用OpenCV库来提取图像中的蓝色部分:
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
// 读取图像
Mat image = imread(argv[1]);
if (image.empty())
{
cout << "Could not open or find the image" << endl;
return -1;
}
// 转换为HSV颜色空间
Mat hsv;
cvtColor(image, hsv, COLOR_BGR2HSV);
// 定义蓝色范围
Scalar lower_blue = Scalar(100, 50, 50);
Scalar upper_blue = Scalar(130, 255, 255);
// 通过掩码提取蓝色部分
Mat mask;
inRange(hsv, lower_blue, upper_blue, mask);
// 显示原始图像和提取的蓝色部分
imshow("Original", image);
imshow("Blue", mask);
waitKey();
return 0;
}
```
该程序加载一张图片,将其转换为HSV颜色空间,并使用inRange函数创建一个掩码,该掩码会提取图像中在指定蓝色范围内的颜色部分。最终,程序会显示原始图像和提取的蓝色部分。