如何替换Mat图像的矩形区域

时间:2014-06-09 19:04:35

标签: java opencv image-processing

我正在使用opencv图像处理库。我只想用另一个小图像替换原始Mat图像的矩形区域(小于原始图像)。我找不到这样做的方向

是的,请有人帮助我。提前致谢

2 个答案:

答案 0 :(得分:5)

这是一种方式,而不是声称它是最好的方式。

Mat m = ... // your smaller mat
Mat submat= matOrig.submat(new Rect(x,y, m.cols(), m.rows()) );
m.copyTo(submat);

这应该可以正常工作,假设m不会超出matOrig的界限。当你得到一个submat时,它仍然链接到它的源Mat。

答案 1 :(得分:-1)

这是我的代码:

Mat m = new Mat(originalImg,new Rect(x,y,w, h));
double[] size = {w, h};
Imgproc.resize(logo,logo,new Size(size));// make sure your logo is the same size with your roi
Imgproc.cvtColor(logo, logo, Imgproc.COLOR_RGBA2RGB);//make sure your logo has the same channel with your dst img
congrats.copyTo(m);