在opencv如果想拷贝图像副本有两种方法,这两种方法得到新图像都不和原图共享内存
第一种深拷贝
cpp
cv::Mat deep_copy = img.clone();
第二种通道转换
cpp
cv::Mat bgra_image;
cv::cvtColor(bgr_image, img, cv::COLOR_BGR2BGRA);
我使用在vs的Nuget安装的opencv4.2
虽然理论上来说,拷贝的速度应该比转换通道更快,尤其是加了一个通道。但是实测下来第二种速度竟然比第一种快了一倍。1200万像素的三通道bgr图,第一种拷贝需要6ms-10ms,第二种只需要3ms