#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include <stdio.h>
using namespace std;
using namespace cv;
int main()
{
Mat image, mask;
Rect r1(100, 100, 250, 300);
Mat img1, img2, img3, img4;
image = imread("*.jpg");
mask = Mat::zeros(image.size(), CV_8UC1);//建立与原图一样大小的mask图像,并将所有像素初始化为0,因此全图成了一张全黑色图。
mask(r1).setTo(255);//r1是设置好的感兴趣区域,将mask图中的r1区域的所有像素值设置为255,也就是整个r1区域变成了白色。
img1 = image(r1);//直接抠出目标区域
image.copyTo(img2, mask);原始图image拷贝到目的图img2上
image.copyTo(img3);
img3.setTo(0, mask);
imshow("Image sequence", image);
imshow("img1", img1);
imshow("img2", img2);
imshow("img3", img3);
imshow("mask", mask);
waitKey();
return 0;
}
原图(image)与掩膜(mask)进行与运算后得到了结果图(img2):