Assume I have a matrix
A = cv::Mat(3,3,CV_32F)
and a matrix
B = cv::Mat(2,2,CV_32F).
Let's say A has all zeros and B has all ones. I want to assign the values of B to the upper left corner of A. How can I do this?
I tried the following:
A(cv::Rect_<int>(0,0,2,2)) = B
But this doesn't seem to work. However assigning a scalar value to the subrect of A this way does work:
A(cv::Rect_<int>(0,0,2,2)) = 1.0
What is wrong with the first approach?
I'd prefer a one-liner, but this does the trick:
cv::Mat tmp = A(cv::Rect(0,0,2,2)); B.copyTo(tmp);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With