Heim  >  Artikel  >  Java  >  Wie füge ich mithilfe der Java OpenCV-Bibliothek Rauschen zum Bild hinzu?

Wie füge ich mithilfe der Java OpenCV-Bibliothek Rauschen zum Bild hinzu?

WBOY
WBOYnach vorne
2023-08-18 14:01:021237Durchsuche

Mit OpenCV Rauschen zu einem gegebenen Bild hinzufügen -

  • Lesen Sie den Inhalt des gegebenen Bildes in ein Mat-Objekt.

  • Erstellen Sie zwei leere Matrizen, um das Rauschen und die Ergebnisse zu speichern.

Erstellen Sie zwei MatOfDouble-Matrizen, um den Mittelwert und die Standardabweichung zu speichern.

  • Verwenden Sie die Funktion „meanStdDev()“, um die Werte für Mittelwert und Standardabweichung zu erhalten Verwenden Sie die Methode randn(), um eine Matrix mit zufälligen Elementen zu erstellen (die zum Speichern von Rauschen verwendet wird).

  • Übergeben Sie die oben erstellte Quelle, den Mittelwert und die Standardabweichung an diese Methode Objekte.

Fügen Sie abschließend die Rauschmatrix und die Quellmatrix hinzu und speichern Sie sie als Zielmatrix.

Beispiel

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);
   }
}

Eingabebild

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

Ausgabe

Nach Ausführung des obigen Programms wird die folgende Ausgabe generiert−

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

Das obige ist der detaillierte Inhalt vonWie füge ich mithilfe der Java OpenCV-Bibliothek Rauschen zum Bild hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen