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

Có phương thức nào thay thế cho phương thức OpenCV imshow () trong Java không?

HighGui lớp của org.opencv.highgui gói cho phép bạn tạo và thao tác các cửa sổ và hiển thị chúng. Bạn có thể hiển thị hình ảnh trong cửa sổ bằng phương thức imshow () của lớp này. Phương thức này chấp nhận hai tham số−

  • Một biến chuỗi đại diện cho tên của cửa sổ.

  • Một đối tượng Mat đại diện cho nội dung của một hình ảnh.

Bạn nên gọi waitKey () phương thức sau imshow () .

Ví dụ

Ví dụ sau đây đọc một hình ảnh, chuyển đổi nó thành một hình ảnh thang độ xám, phát hiện các cạnh trong đó và hiển thị tất cả ba hình ảnh (gốc, thang xám và, các cạnh) trong cửa sổ bằng HighGui.

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 ImshowExample {
   public static void main(String args[]) {
      //Loading the OpenCV core library
      System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
      //Reading the Image from the file
      Mat src = Imgcodecs.imread("D://images//window.jpg");
      HighGui.imshow("Original Image", src);
      //Converting color to gray scale
      Mat gray = new Mat(src.rows(), src.cols(), src.type());
      Imgproc.cvtColor(src, gray, Imgproc.COLOR_RGB2GRAY);
      HighGui.imshow("Gray Scale Image", gray);
      //Applying canny
      Mat dst = new Mat(src.rows(), src.cols(), src.type());
      Imgproc.Canny(gray, dst, 100, 100*3);
      HighGui.imshow("Edges", dst);
      HighGui.waitKey();
   }
}

Đầu ra

Khi thực thi, chương trình trên tạo ra ba cửa sổ như hình dưới đây -

Hình ảnh gốc -

Có phương thức nào thay thế cho phương thức OpenCV imshow () trong Java không?

Hình ảnh thang độ xám -

Có phương thức nào thay thế cho phương thức OpenCV imshow () trong Java không?

Hình ảnh có các cạnh được đánh dấu -

Có phương thức nào thay thế cho phương thức OpenCV imshow () trong Java không?