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

Giải thích Ngưỡng đơn giản của OpenCV bằng cách sử dụng ví dụ Java

Tạo ngưỡng là một kỹ thuật đơn giản để phân đoạn hình ảnh. nó thường được sử dụng để tạo ảnh nhị phân. Trong tạo ngưỡng đơn giản, các pixel lớn hơn giá trị ngưỡng nhất định sẽ được thay thế bằng giá trị chuẩn.

Ngưỡng () thực hiện thao tác ngưỡng đơn giản trên hình ảnh đã cho. Sau đây là các tham số của phương thức này -

  • Hai đối tượng Mat đại diện cho hình ảnh nguồn và hình ảnh đích.

  • Hai biến số nguyên đại diện cho ngưỡng hoặc giá trị tiêu chuẩn.

  • Một biến số nguyên đại diện cho loại ngưỡng đơn giản.

Ví dụ

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 SimpleThreshold 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());
      //Applying simple threshold
      Imgproc.threshold(src, dst, 50, 255, Imgproc.THRESH_BINARY);
      //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("Simple Threshold");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]) {
      launch(args);
   }
}

Hình ảnh đầu vào

Giải thích Ngưỡng đơn giản của OpenCV bằng cách sử dụng ví dụ Java

Đầu ra

Khi thực thi, chương trình trên tạo các cửa sổ sau -

Giải thích Ngưỡng đơn giản của OpenCV bằng cách sử dụng ví dụ Java