#include

#include //引入头文件

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;

}

 

精彩文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: