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.
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 Ausführung des obigen Programms wird die folgende Ausgabe generiert−
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!