如何用另一个图像ROI替换部分图像

时间:2015-03-26 11:24:04

标签: java opencv image-processing

使用opencv2.4.11 java API我试图截断部分图像,然后将其放在另一个图像上。

下面发布的代码显示,截断Mat对象是下面发布的img_1的截断部分。和 img_2是应该托管“截断的”Mat对象的截断部分的图像。

当我运行代码时,结果是img_3,我看到img_2与“截断”重叠 Mat对象img_3。

请让我知道如何正确实现这一目标。

static final String PATH5 = "c:.../images/CannyDest.jpg";
static final String PATH6 = "c:.../images/BlurredDest.jpg";

public static void main(String[] args) {
    ....
    ....
    ....

    Mat temp = Highgui.imread(PATH5);//img_1
    Mat trunctaed = temp.submat(new Rect(0, 0, 30, 30));
    Mat target = Highgui.imread(PATH6);//img_2
    trunctaed.copyTo(target);
    Highgui.imwrite(PATH6, trunctaed);//img_3
    //Highgui.imwrite(PATH6, target);// results in img_3
}

img_1 img_1

img_2 img_2

img_3 img_3

1 个答案:

答案 0 :(得分:0)

根据opencv dos,copyTop()的参数是目标。并且您要保存trunctaed图片,并且实际应该保存target