Ajouter du bruit à une image donnée à l'aide d'OpenCV -
Lire le contenu de l'image donnée dans un objet Mat.
Créez deux matrices vides pour stocker le bruit et les résultats
Créez deux matrices MatOfDouble pour stocker la moyenne et l'écart type.
Utilisez la fonction MeanStdDev() pour obtenir les valeurs de moyenne et d'écart type Utilisez la méthode randn() pour créer une matrice avec des éléments aléatoires (utilisés pour stocker le bruit).
Passez la source, la moyenne et l'écart type créés ci-dessus à cette méthode objets.
Enfin, ajoutez la matrice de bruit et la matrice source et enregistrez-la comme matrice cible.
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); } }
Après l'exécution du programme ci-dessus, la sortie suivante sera générée&moins;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!