| 1 | initial version |
Although your example is not complete I think the problem is that you use m1 instead of m2 in the line
Mat image_roi = m1(roi);
OpenCv does not reallocate matrices for efficiency reasons, only when it has to. As m1 is not initialized in your code snippet it needs to be allocated independently of m2. If you use the following code
Mat image_roi = m2(roi);
then image_roi would use the same memory area as m2 but with a different matrix header so modifications of the roi would alter the original image.
See the Mat tutorial for details.