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

Java를 사용하는 OpenCV의 이미지에 대한 히스토그램 균등화.


이미지의 히스토그램은 픽셀 강도 값의 빈도를 보여줍니다. 이미지 히스토그램에서 X축은 그레이 레벨 강도를 나타내고 Y축은 이러한 강도의 빈도를 보여 이미지의 대비를 향상시킵니다.

equalizeHist() Imgproc 메서드의 메서드는 원본 및 대상 이미지를 나타내는 Mat 개체를 받아들이고 원본 행렬의 히스토그램을 균등화하고 대상 행렬에서 수신합니다.

예시

import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javafx.application.Application;
import javafx.embed.swing.SwingFXUtils;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.image.ImageView;
import javafx.scene.image.WritableImage;
import javafx.stage.Stage;
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 HistogramEquilization extends Application {
   public void start(Stage stage) throws IOException {
      //Loading the OpenCV core library
      System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
      String file ="D:\\Images\\win2.jpg";
      Mat src = Imgcodecs.imread(file, Imgcodecs.IMREAD_GRAYSCALE);
      //Creating an empty matrices to store the destination image.
      Mat dst = new Mat(src.rows(), src.cols(), src.type());
      //Detecting the edges
      Imgproc.equalizeHist(src, dst);
      //Converting matrix to JavaFX writable image
      Image img = HighGui.toBufferedImage(dst);
      WritableImage writableImage= SwingFXUtils.toFXImage((BufferedImage) img, null);
      //Setting the image view
      ImageView imageView = new ImageView(writableImage);
      imageView.setX(10);
      imageView.setY(10);
      imageView.setFitWidth(575);
      imageView.setPreserveRatio(true);
      //Setting the Scene object
      Group root = new Group(imageView);
      Scene scene = new Scene(root, 595, 400);
      stage.setTitle("Histogram Equilization Example");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]) {
      launch(args);
   }
}

입력 이미지

Java를 사용하는 OpenCV의 이미지에 대한 히스토그램 균등화.

출력

실행 시 위의 결과는 다음과 같이 출력됩니다. -

Java를 사용하는 OpenCV의 이미지에 대한 히스토그램 균등화.