Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 OpenCV imshow() 메서드에 대한 대안이 있습니까?

<시간/>

HighGui org.opencv.highgui 클래스 패키지를 사용하면 창을 만들고 조작하고 표시할 수 있습니다. 이 클래스의 imshow() 메서드를 사용하여 창에 이미지를 표시할 수 있습니다. 이 메소드는 두 개의 매개변수를 받아들입니다-

  • 창의 이름을 나타내는 문자열 변수입니다.

  • 이미지의 내용을 나타내는 Mat 개체입니다.

waitKey()를 호출하는 것이 좋습니다. imshow() 이후의 메소드 .

예시

다음 예제는 이미지를 읽어서 회색조 이미지로 변환하고 그 안의 가장자리를 감지하고 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();
   }
}

출력

실행시 위의 프로그램은 아래와 같이 3개의 창을 생성합니다 -

원본 이미지 -

Java에서 OpenCV imshow() 메서드에 대한 대안이 있습니까?

회색조 이미지 -

Java에서 OpenCV imshow() 메서드에 대한 대안이 있습니까?

가장자리가 강조 표시된 이미지 -

Java에서 OpenCV imshow() 메서드에 대한 대안이 있습니까?