You can blend two images in OpenCV using the addWeighted() method of the Core class.
This method accepts two Mat objects (representing the source and destination matrices) and two double values representing the desired weights of the images alpha, gamma and calculates the weighted sum of them.
Example
import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.highgui.HighGui; import org.opencv.imgcodecs.Imgcodecs; public class AddingTwoImages { public static void main( String[] args ) { //Loading the OpenCV core library System.loadLibrary( Core.NATIVE_LIBRARY_NAME ); //Reading the input images Mat src1 = Imgcodecs.imread("D://images//a1.jpg"); Mat src2 = Imgcodecs.imread("D://images//a2.jpg"); //Creating an empty matrix to store the result Mat dst = new Mat(); //Adding two images Core.addWeighted(src1, 0.4, src2, 0.8, 0, dst); HighGui.imshow("Adding two images", dst); HighGui.waitKey(0); } }
Input image1

Input Image 2

Output
