Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Biến đổi Laplacian trong OpenCV Java

Biến đổi Laplacian làm nổi bật vùng thay đổi cường độ nhanh, dùng để phát hiện cạnh.

Phương thức Laplacian() của Imgproc. Tham số:

  • Hai Mat: ảnh nguồn, đích.
  • Bốn int: depth, kernel size, scale, delta.
  • Int: border type.

Ví dụ minh họa

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.CvType;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class LaplacianTransform extends Application {
    @Override
    public void start(Stage stage) throws IOException {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        
        Mat src = new Mat();
        Mat dst = new Mat();
        
        src = Imgcodecs.imread("D:\\Images\\road3.jpg");
        
        // Laplacian: depth=CV_16S, ksize=3, scale=1, delta=0, border=DEFAULT
        Imgproc.Laplacian(src, dst, CvType.CV_16S, 3, 1, 0, Core.BORDER_DEFAULT);
        
        // Chuyển về CV_8U
        Core.convertScaleAbs(dst, dst);
        
        Image img = HighGui.toBufferedImage(dst);
        WritableImage writableImage = SwingFXUtils.toFXImage((BufferedImage) img, null);
        
        ImageView imageView = new ImageView(writableImage);
        imageView.setX(10);
        imageView.setY(10);
        imageView.setFitWidth(575);
        imageView.setPreserveRatio(true);
        
        Group root = new Group(imageView);
        Scene scene = new Scene(root, 595, 400);
        stage.setTitle("Laplacian Transform");
        stage.setScene(scene);
        stage.show();
    }
    
    public static void main(String[] args) {
        launch(args);
    }
}

Hình ảnh đầu vào và kết quả

Input: Biến đổi Laplacian trong OpenCV Java

Output: Biến đổi Laplacian trong OpenCV Java