Heim > Java > javaLernprogramm > Hauptteil

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

WBOY
Freigeben: 2023-08-18 14:34:35
nach vorne
1218 Leute haben es durchsucht

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);
   }
}
Nach dem Login kopieren

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!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!