- 融合的图片大小相同:
OpenCV的addWeighted()进行图片融合addWeighted使用方法 - 把一张小图片融合进大图片的区域
import org.opencv.core.*;
import org.opencv.imgcodecs.Imgcodecs;
public class OpenCVTest {
static{ System.loadLibrary(Core.NATIVE_LIBRARY_NAME); }
public static void main(String[] args) {
OpenCVTest openCVTest = new OpenCVTest();
//读入图片
Mat src = Imgcodecs.imread("F:\\opencvPhoto\\photo\\opencv.jpg"); //大图片
Mat src2 = Imgcodecs.imread("F:\\opencvPhoto\\photo\\test1.jpg"); //小图片
//选择融合的区域
Rect rect = new Rect(100,100, src2.cols(),src2.rows());//x,y坐标,宽,高
Mat src_roi = new Mat(src, rect);
//图片融合方法1
//Core.addWeighted(src_roi, 0.5, src2, 0.5, 0, src_roi);
//图片融合方法2
src2.copyTo(src_roi);
Imgcodecs.imwrite("F:\\opencvPhoto\\result\\dst.jpg", src);
}
}
图片测试
src1
src2
方法1效果
方法2效果
总结
方法1融合可以调节融合图片的权重
方法2融合是为将图片覆盖到另一张图片上面