必威体育Betway必威体育官网
当前位置:首页 > IT技术

OpenCV3之——copyTo()函数的使用方法

时间:2019-08-02 18:41:06来源:IT技术作者:seo实验室小编阅读:63次「手机版」
 

copyto

在Mat矩阵类的成员函数copyto(roi , mask)函数是非常有用的一个函数,尤其是后面的mask可以实现蒙版的功能,我们用几个实例来说明它的作用。我们要注意mask的数据类型,必须是CV_8U,且通道数或者是1,或者与roi一致。

首先我们令mask为尺寸与roi一致的1矩阵:

int main()
{
    Mat img1=imread("D:/CodeWork/MyImage/baboon.jpg",0);
    Mat img2=imread("D:/CodeWork/MyImage/linux.jpg",0);
    imshow("initial img1",img1);
    
    Mat roi=img1(Rect(0,0,img2.cols,img2.rows));
//分别令像素值为1、0,以及令mask=img2.clone();观察输出结果
    Mat mask(roi.rows,roi.cols,roi.depth(),Scalar(1));

    img2.copyTo(roi,mask); 
    imshow("logan img2",img2); 
    imshow("after mask img1",img1); 
    waitKey(); 
return 0; 
}

运行结果如下:

接下来,我们令mask=0,观察输出结果如下,很明显mask为0的区域并没有被替换成img2图像:

再接下来,我们将mask直接等于img2图像,看看会怎么样?在mask中,非0区域的图像被保留下来,而像素值为0的区域则保持不变。

相关阅读

分享到:

栏目导航

推荐阅读

热门阅读