
- Java Tutorial
- Java - Home
- Java - Overview
- Java - Environment Setup
- Java - Basic Syntax
- Java - Object & Classes
- Java - Constructors
- Java - Basic Datatypes
- Java - Variable Types
- Java - Modifier Types
- Java - Basic Operators
- Java - Loop Control
- Java - Decision Making
- Java - Numbers
- Java - Characters
- Java - Strings
- Java - Arrays
- Java - Date & Time
- Java - Regular Expressions
- Java - Methods
- Java - Files and I/O
- Java - Exceptions
- Java - Inner classes
- Java Object Oriented
- Java - Inheritance
- Java - Overriding
- Java - Polymorphism
- Java - Abstraction
- Java - Encapsulation
- Java - Interfaces
- Java - Packages
- Java Advanced
- Java - Data Structures
- Java - Collections
- Java - Generics
- Java - Serialization
- Java - Networking
- Java - Sending Email
- Java - Multithreading
- Java - Applet Basics
- Java - Documentation
- Java Useful Resources
- Java - Questions and Answers
- Java - Quick Guide
- Java - Useful Resources
- Java - Discussion
- Java - Examples
How to add noise to an image using Java OpenCV library?
To add noise to a given image using OpenCV −
Read the contents of the given image to a Mat object.
Create two more empty matrices to store the noise and the resultant matrices.
Create two MatOfDouble matrices to store mean and standard deviation.
Get the mean and standard deviation values using the meanStdDev() method.
Create a matrix with random elements (to store the noise) using the randn() method.
To this method pass the above-created source, mean and standard deviation objects.
Finally, add the noise matrix and source matrix and save as destination.
Example
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); } }
Input Image
Output
On executing, the above program generates the following output −
- Related Articles
- How to add text to an image using Java OpenCV library?
- How to add borders to an image using Java OpenCV library?
- How to write an image using Java OpenCV library?
- How to flip an image using Java OpenCV library?
- How to detect faces in an image using Java OpenCV library?
- How to draw markers on an image using Java OpenCV library?
- How to find Image Contours using Java OpenCV library?
- How to draw Image Contours using Java OpenCV library?
- How to create a watermark on an image using Java OpenCV library?
- How to alter the contrast of an image using Java OpenCV library?
- How to alter the brightness of an image using Java OpenCV library?
- How to alter the sharpness of an image using Java OpenCV library?
- How to create a mirror image using Java OpenCV library?
- How to convert a negative image to positive image using Java OpenCV library?
- How to convert a colored image to Sepia image using Java OpenCV library?

Advertisements