Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để thực hiện thao tác Bitwise XOR trên hai hình ảnh bằng Java OpenCV?


Bạn có thể tính riêng bitwise hoặc giữa hai hình ảnh bằng cách sử dụng bitwise_xor () phương thức của org.opencv.core.Core lớp học.

Phương thức này chấp nhận ba Mat các đối tượng đại diện cho ma trận nguồn, đích và kết quả, tính toán loại trừ từng bit hoặc của từng phần tử trong ma trận nguồn và lưu trữ kết quả trong ma trận đích.

Ví dụ

Trong ví dụ Java sau đây, chúng tôi đang chuyển đổi một hình ảnh thành nhị phân và thang độ xám và tính toán kết quả loại trừ hoặc theo chiều dọc của bit.

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class BitwiseXORExample {
   public static void main(String args[]) throws Exception {
      //Loading the OpenCV core library
      System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
      //Reading the Image
      String file ="D://images//elephant.jpg";
      Mat src = Imgcodecs.imread(file, Imgcodecs.IMREAD_GRAYSCALE );
      HighGui.imshow("Grayscale Image", src);
      //Creating an empty matrix to store the results
      Mat dst = new Mat(src.rows(), src.cols(), src.type());
      Mat threshold = new Mat(src.rows(), src.cols(), src.type());
      Mat gray = new Mat(src.rows(), src.cols(), src.type());
      //Converting the gray scale image to binary image
      Imgproc.threshold(src, threshold, 100, 255, Imgproc.THRESH_BINARY_INV);
      HighGui.imshow("Binary Image", threshold);
      //Applying bitwise Or operation
      Core.bitwise_xor(src, threshold, dst);
      HighGui.imshow("Bitwise XOR operation", dst);
      HighGui.waitKey();
   }
}

Hình ảnh đầu vào

Làm thế nào để thực hiện thao tác Bitwise XOR trên hai hình ảnh bằng Java OpenCV?

Đầu ra

Khi thực thi, chương trình trên tạo các cửa sổ sau -

Hình ảnh Tỷ lệ Xám -

Làm thế nào để thực hiện thao tác Bitwise XOR trên hai hình ảnh bằng Java OpenCV?

Hình ảnh nhị phân -

Làm thế nào để thực hiện thao tác Bitwise XOR trên hai hình ảnh bằng Java OpenCV?

Bitwise Xor -

Làm thế nào để thực hiện thao tác Bitwise XOR trên hai hình ảnh bằng Java OpenCV?