JAVA opencv-图像相加、反相

48 阅读1分钟

图像显示的时候需要注意: HighGui.imshow("mixed",src);

  • 图像的加法:Core.add(Mat src1, Mat src2, Mat dst);
  • 图像的混合:Core.addWeighted(Mal src1, double alpha, Mat src, double bela, double gamma.Mat dst);
  • 图像的反相:Core.bitwise not(Mat src, Mat dst);

加载opencv框架

static {
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}

简单相加

               "\factory_ic_mould_assembling.png");

Mat imread2 = Imgcodecs.imread(
       "D:\Users\WorkWaiting\HelloOpenCv\res" +
               "\is2.png");

Mat src = new Mat();



Core.add(imread, //图1
       imread2, //图2
       src); //简单相加

//显示图像
HighGui.imshow("mixed",src);


//退出图像显示程序
HighGui.waitKey(0);

System.out.println("OK-->END Windows");

加权相加

// 读取图像-->灰度
Mat imread = Imgcodecs.imread(
        "D:\Users\WorkWaiting\HelloOpenCv\res" +
                "\factory_ic_mould_assembling.png");

Mat imread2 = Imgcodecs.imread(
        "D:\Users\WorkWaiting\HelloOpenCv\res" +
                "\is2.png");

Mat src = new Mat();

Core.addWeighted(imread, //图1
        0.5, //加权比例1
        imread2, //图2
        0.5,  //加权比例1
        0,
        src); //加权平均



//显示图像
HighGui.imshow("mixed",src);


//退出图像显示程序
HighGui.waitKey(0);

System.out.println("OK-->END Windows");

反相

// 读取图像-->灰度
Mat imread = Imgcodecs.imread(
        "D:\Users\WorkWaiting\HelloOpenCv\res" +
                "\factory_ic_mould_assembling.png");


Mat src = new Mat();


Core.bitwise_not(imread,src);

//显示图像
HighGui.imshow("mixed",src);


//退出图像显示程序
HighGui.waitKey(0);

System.out.println("OK-->END Windows");