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

Ví dụ về OpenCV Java để chia tỷ lệ hình ảnh.


Thay đổi kích thước () phương thức của lớp Imgproc thay đổi kích thước hình ảnh được chỉ định. Phương thức này chấp nhận -

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

  • Một đối tượng Size đại diện cho kích thước của hình ảnh đầu ra.

  • Một biến kép đại diện cho hệ số tỷ lệ dọc theo trục hoành.

  • Một biến kép đại diện cho hệ số tỷ lệ dọc theo trục tung.

  • Một biến số nguyên đại diện cho phương pháp nội suy được sử dụng trong phép toá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.core.Size;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class ScalingAnImage extends Application {
   public void start(Stage stage) throws IOException {
      //Loading the OpenCV core library
      System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
      //Reading image data
      String file ="D:\\Images\\elephant.jpg";
      Mat src = Imgcodecs.imread(file);
      //Creating destination matrix
      Mat dst = new Mat(src.rows(), src.cols(), src.type());
      //Creating the Size object
      Size size = new Size(src.rows()*0.5, src.rows()*0.5);
      //Scaling the Image
      Imgproc.resize(src, dst, size, 0, 0, Imgproc.INTER_AREA);
      Imgcodecs.imwrite("D:\\Images\\scaling_example.jpg", 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.setPreserveRatio(true);
      //Setting the Scene object
      Group root = new Group(imageView);
      Scene scene = new Scene(root, 595, 400);
      stage.setTitle("Scaling Example");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]) {
      launch(args);
   }
}

Hình ảnh đầu vào

Ví dụ về OpenCV Java để chia tỷ lệ hình ảnh.

Đầu ra

Khi thực thi, chương trình trên tạo ra kết quả sau -

Ví dụ về OpenCV Java để chia tỷ lệ hình ảnh.