OpenCV — прямое копирование результата умножения матриц в подмножество другой матрицы

Я пытаюсь напрямую скопировать результат умножения матрицы в подмножество другой матрицы:

cv::Mat a,b,c;
//fill matrices a and b and set matrix c to correct size
cv::Mat ab=a*b;
ab.copyTo(c(cv::Rect(0,0,3,3)));

Разве можно напрямую скопировать результат в матрицу c, например, (Я знаю, что это не работает):

(a*b).copyTo(c(cv::Rect(0,0,3,3)));
//or
c(cv::Rect(0,0,3,3)).setTo(a*b);

Разве это не будет более эффективным?

1

Решение

Попробуй это:

cv::Mat subC = c(cv::Rect(0,0,3,3));
subC = a*b;

Нет копирования здесь.

Или более кратко:

c(cv::Rect(0,0,3,3)) = a*b;
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]