在图像处理的过程中,我们时常需要对指定区域或目标进行操作,这个区域我们称之为感兴趣区域。在学习opencv的初级阶段,对于感兴趣区域的操作方法是必须要掌握的。
Mat image,mask;
Rect r1(100,100,50,100);
Mat img1,img2,img3,img4;
for(;;)
{
sequence >> image;
mask = Mat::zeros(image.size(),CV_8UC1);//zero为与image相同大小的全0图像
mask(r1).setTo(255); //把mask图像的r1区域设为255,即r1大小的白色块
img1 = image(r1); //把image中的r1区域取出保存到img1中
image.copyTo(img2,mask);//把image与mask合并保存到img2中,即image与mask的非0区域合并
image.copyTo(img3);
img3.setTo(0,mask);//相当于把image中的与mask的非0区域相同的区域置0,即只有r1区域被置0
imshow("Image sequence", image);
imshow("img1",img1);
imshow("img2",img2);
imshow("img3",img3);
imshow("mask",mask);
waitKey(0);
}
Mat image,mask;
Rect r1(100,100,50,100);
Mat img1,img2,img3,img4;
for(;;)
{
sequence >> image;
mask = Mat::zeros(image.size(),CV_8UC1);//zero为与image相同大小的全0图像
mask(r1).setTo(255); //把mask图像的r1区域设为255,即r1大小的白色块
img1 = image(r1); //把image中的r1区域取出保存到img1中
image.copyTo(img2,mask);//把image与mask合并保存到img2中,即image与mask的非0区域合并
image.copyTo(img3);
img3.setTo(0,mask);//相当于把image中的与mask的非0区域相同的区域置0,即只有r1区域被置0
imshow("Image sequence", image);
imshow("img1",img1);
imshow("img2",img2);
imshow("img3",img3);
imshow("mask",mask);
waitKey(0);
}