opencv的掩膜案例

时光总嘲笑我的痴心妄想 提交于 2021-01-13 15:25:13

cv::inRange(src, lowerb, upperb, dst)

cv::bitwise_and(src1, src2, dst, mask)    dst = src1 & src2

mask:为掩膜

与运算:和1与,数据不变,和0与,结果为0(RGB中黑色=0;)

 

 

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;


int main()
{
Mat src = imread("E:/LYPOpenCV3/JZG/ZGimg/person.jpg");
if (src.empty()){
printf("could not load image...\n");
return -1;
}
namedWindow("input image", CV_WINDOW_AUTOSIZE);
//imshow("input image", src);

Mat hsvimg;
cvtColor(src, hsvimg, COLOR_BGR2HSV);
//imshow("hsv", hsvimg);

Mat maskimg, maskimg_not, people;
inRange(hsvimg, Scalar(35, 43, 46), Scalar(77, 255, 255),maskimg);
imshow("mask", maskimg);

bitwise_not(maskimg, maskimg_not);
imshow("mask_not", maskimg_not);

bitwise_and(src, src, people, maskimg_not);
imshow("people", people);


waitKey(0);
return 0;
}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!