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

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


Bạn có thể tính bitwise hoặc giữa hai hình ảnh bằng cách sử dụng bitwise_or () 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 sự tách rời 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 hình ảnh thành dạng nhị phân và thang độ xám và tính toán sự phân chia 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 BitwiseORExample {
   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());
      //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_or(src, threshold, dst);
      HighGui.imshow("Bitwise OR operation", dst);
      HighGui.waitKey();
   }
}

Hình ảnh đầu vào

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

Bitwise Hoặc -

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