Rumah > Java > javaTutorial > teks badan

Bagaimana untuk menambah hingar pada imej menggunakan perpustakaan OpenCV Java?

WBOY
Lepaskan: 2023-08-18 14:34:35
ke hadapan
1247 orang telah melayarinya

Tambah hingar pada imej yang diberikan menggunakan OpenCV -

  • Baca kandungan imej yang diberikan ke dalam objek Mat.

  • Buat dua matriks kosong untuk menyimpan hingar dan keputusan

Buat dua matriks MatOfDouble untuk menyimpan min dan sisihan piawai.

  • Gunakan fungsi minStdDev() untuk mendapatkan nilai min dan sisihan piawai Gunakan kaedah randn() untuk mencipta matriks dengan unsur rawak (digunakan untuk menyimpan hingar).

  • Hantar sumber, min dan sisihan piawai yang dibuat di atas kepada kaedah ini objek.

Akhir sekali, tambahkan matriks hingar dan matriks sumber dan simpan sebagai matriks sasaran.

Contoh

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.MatOfDouble;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
public class AddingNoise extends Application {
   public void start(Stage stage) throws IOException {
      //Loading the OpenCV core library
      System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
      //Reading the Image from the file
      String file ="D://images//elephant.jpg";
      Mat src = Imgcodecs.imread(file);
      System.out.println("Image Loaded");
      //Creating destination matrix
      Mat dst = new Mat(src.rows(), src.cols(), src.type());
      //Creating a matrix for the noise
      Mat noise = new Mat(src.rows(), src.cols(), src.type());
      //Calculating the mean and standard deviation
      MatOfDouble mean = new MatOfDouble();
      MatOfDouble dev = new MatOfDouble();
      Core.meanStdDev(src, mean, dev);
      //Filling the noise matrix
      Core.randn(noise, mean.get(0,0)[0], dev.get(0,0)[0]);
      //Adding noise to the destination
      Core.add(src, noise, 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("Adding Noise Example");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]) {
      launch(args);
   }
}
Salin selepas log masuk

Imej input

如何使用Java OpenCV库向图像添加噪声?

Output

Selepas melaksanakan program di atas, output berikut akan dijana

Atas ialah kandungan terperinci Bagaimana untuk menambah hingar pada imej menggunakan perpustakaan OpenCV Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan