How to convert a colored image to grayscale using Java OpenCV library?



The cvtColor() method of the Imgproc class changes/converts the color of the image from one to another. This method accepts three parameters −

  • src − A Matrix object representing source.

  • dst − A Matrix object representing the destination.

  • code − An integer value representing the color of the destination image.

To convert a colored image to grayscale you need to pass Imgproc.COLOR_RGB2GRAY as the third parameter to this method.

Example

import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.imgcodecs.Imgcodecs; import org.opencv.imgproc.Imgproc; public class ColorToGrayscale {    public static void main(String args[]) throws Exception {       //Loading the OpenCV core library       System.loadLibrary( Core.NATIVE_LIBRARY_NAME );       //Reading the image       Mat src = Imgcodecs.imread("spiderman.jpg");       //Creating the empty destination matrix       Mat dst = new Mat();       //Converting the image to grey scale       Imgproc.cvtColor(src, dst, Imgproc.COLOR_RGB2GRAY);       //Instantiating the Imagecodecs class       Imgcodecs imageCodecs = new Imgcodecs();       //Writing the image       imageCodecs.imwrite("colortogreyscale.jpg", dst);       System.out.println("Image Saved");    } }

Input

Output

Updated on: 2020-04-08T14:03:11+05:30

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements