OpenCV 學習(四)之 將圖片插入另一張圖片中的實現(ROI)
阿新 • • 發佈:2019-01-09
/**
* 將一張圖片插入另一種圖片中
*/
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);
}
注:這個類沒做圖片為空的判斷,請自行確認圖片路徑是否正確,或者加一個非空判斷。