使用OpenCV库进行图像处理时,经常会用到clone和copyTo函数,这里对两个函数进行介绍。
- copyTo函数
实现和clone一样的功能,但一般多用于掩模贴图:
1 Mat src = imread(imagepath); 2 Mat src_temp; 3 src.copyTo(src_temp);
另外用途最广的是它的贴图功能:
1 src.copyTo(src_temp, mask);
其中mask为一个二值的掩模图像,如果如果在某个像素点(i, j)其值为1,则把src中对应位置的像素复制到src_temp中,其余为0的位置像素保持不变。
- clone函数
分析源码可以看出,该函数的实现是copyTo的第一种用法:
1 inline Mat Mat::clone() const 2 { 3 Mat m; 4 copyTo(m); 5 return m; 6 }
多用于复制图片,比如读入一张图像,对其进行处理时,只是想看下效果并不像让原图发生变化,这时候可以重新声明如下:
1 Mat src = imread(imagepath); 2 Mat src_temp = src.clone();