/**
* 将一張圖檔插入另一種圖檔中
*/
static void exam2() {
Mat image = Imgcodecs.imread("./images/Lena.jpg");
Mat logo = Imgcodecs.imread("./images/logo2.jpg");
Rect rect_logo = new Rect(150,150,220,200);//設定 logo 圖檔的剪切位置以及大小,即左上角的坐标為(150,150),寬為220,高為200
Rect rect_image = new Rect(image.cols()-220,image.rows()-200,220,200);//設定image圖檔的剪切位置及大小,這裡注意:兩個剪切的大小大小要一緻
Mat logoRoi = new Mat(logo,rect_logo);//對圖檔進行剪切
Mat imageRoi = new Mat(image,rect_image);//對圖檔進行剪切
Mat clone = image.clone();//複制一層,主要是為了獲得原來圖像的大小。也可以自己建立。
Mat cloneRoi = new Mat(clone,rect_image);
Core.add(logoRoi, imageRoi, cloneRoi);//将圖檔混入,如果圖檔大小不一樣會報錯
new ShowImage(clone);//顯示圖檔,ShowImage 是自己寫的顯示圖檔的工具類
logoRoi.copyTo(cloneRoi);//将圖檔替換
new ShowImage(clone);
}
注:這個類沒做圖檔為空的判斷,請自行确認圖檔路徑是否正确,或者加一個非空判斷。