#include <iostream>
#include<opencv2/opencv.hpp> //引入头文件
using namespace cv; //命名空间
using namespace std;
//opencv这个机器视觉库,它提供了很多功能,都是以函数的形式提供给我们
//我们只需要会调用函数即可
int main(int argc, char *argv[])
{
//读一张图片
Mat image=imread("E:/C++/project/test.jpg"); //Mat图片类型
//显示一张图片
imshow("1",image);
//图片转hsv格式
Mat hsv;
cvtColor(image,hsv,COLOR_BGR2HSV);
imshow("2",hsv);
//截取颜色区域的范围inRang 在hsv取值范围内呈白色 不在范围内呈黑色
Mat mask;//模板
inRange(hsv,Scalar(100,43,46),Scalar(124,255,255),mask); //蓝色最小值最大值
imshow("3",mask);//现在的mask就是抠出蓝色的底色
//取反操作 但是我们需要抠出的是人像
bitwise_not(mask,mask);
imshow("4",mask);
//做一张红色背景图
Mat redBack=Mat::zeros(image.size(),image.type());
redBack=Scalar(40,40,200);//红色三原色
imshow("5",redBack);
//实现图片拷贝 要用到原始图片 人物头像模板 红色背景
image.copyTo(redBack,mask);
imshow("6",redBack);
//参数为0的时候表示等待用户按下任意,键
waitKey(0);
return 0;
}
文章来源:https://www.toymoban.com/news/detail-652743.html
文章来源地址https://www.toymoban.com/news/detail-652743.html
到了这里,关于opencv图片换背景色的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!