Этот фрагмент кода:
double a[]{1, 2, 3, 4};
cv::Mat m{cv::Mat{2, 2, CV_64F, &a[0]}};
a[1] = 9;
std::cout << m.at<double>(1)
печатает 9
, несмотря на то, что на странице 76 книги "Learning OpenCV 3" размещено cv::Mat(const Mat& mat)
конструктор копирования в "Таблица 4-2. Cv :: Mat конструкторы, которые скопировать данные из другого cv :: Mats ". Я неправильно читаю?
Я знаю, что cv::Mat m{cv::Mat{2, 2, CV_64F, &a[0]}.clone()};
сделает копию a
и напечатает 2
.