cv::Mat src = cv::Mat::zeros(100, 100, CV_8UC1);
cv::Mat dst = cv::Mat::zeros(200,200, CV_8UC1);
cv::Rect roi = cv::Rect(20, 20, 100, 100)
src.copyTo(dst (roi));//正确赋值dst
dst (roi) = src.clone();//不正确赋值dst
不管dst在之前有没有分配内存,clone都会为其分配新内存。dst (roi)指向dst的某个rect,此语句并不能实现对dst(rect)的操作,clone分配新内存后,不再指向dst(roi).
在之前未分配内存,copyTo会为其分配新内存,若已分配内存,copyTo不再为其分配。