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

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


Bạn có thể tính toán kết hợp bitwise giữa hai hình ảnh bằng cách sử dụng bitwise_and () 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 kết hợp theo từng bit của mỗi 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, chúng tôi đang chuyển đổi một hình ảnh thành tỷ lệ nhị phân và màu xám và tính toán kết hợp theo chiều dọc của các kết quả.

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 BitwiseAndExample {
   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 and operation
      Core.bitwise_and(src, threshold, dst);
      HighGui.imshow("Bitwise And operation", dst);
      HighGui.waitKey();
   }
}

Hình ảnh đầu vào

Làm thế nào để thực hiện thao tác Bitwise And 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 And 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 And trên hai hình ảnh bằng Java OpenCV?

Bitwise Và -

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