主要步骤为:
1. 把 RGB 图像转换到 HSV 空间
2. 取背景的一小块 20*20,计算蓝色背景的平均色调和饱和度
3. 设置阈值,取出蓝色背景替换为红色背景
4. 把 HSV 图像转换会 RGB 空间
5. 滤波器去除边缘效应
具体代码为:
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
const char* origin = "original";
const char* window = "image";
const char* str = "image.jpg";
Mat image = imread(str);
if (!image.data)
{
cout<<"image not load...."<<endl;
return -1;
}
//imshow(origin,image);
Mat roi = image(Rect(20,20,20,20));
Mat hsvImg;
cvtColor(image,hsvImg,CV_BGR2HSV);
//色调 饱和度 灰度
vector<Mat>v;
split(hsvImg,v);
Mat roiH = v[0](Rect(20,20,20,20));
Mat roiS = v[1](Rect(20,20,