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