Para convertir una imagen en color a una imagen en escala de grises usando OpenCV, leemos la imagen en BufferedImage y la convertimos en Mat Object.
Syntax: File input = new File("digital_image_processing.jpg"); BufferedImage image = ImageIO.read(input);
Para transformar la imagen de formato RGB a escala de grises usando el método cvtColor() en la clase Imgproc.
Sintaxis:
Imgproc.cvtColor(mat de origen, mat1 de destino, Imgproc.COLOR_RGB2GRAY);
Parámetros: El método cvtColor() toma tres parámetros que son la array de la imagen de origen, la array de la imagen de destino y el tipo de conversión de color.
// Java program to convert a color image to gray scale import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.imgcodecs.Imgcodecs; import org.opencv.imgproc.Imgproc; public class GeeksforGeeks { public static void main(String args[]) throws Exception { // To load OpenCV core library System.loadLibrary(Core.NATIVE_LIBRARY_NAME); String input = "C:/opencv/GeeksforGeeks.jpg"; // To Read the image Mat source = Imgcodecs.imread(input); // Creating the empty destination matrix Mat destination = new Mat(); // Converting the image to gray scale and // saving it in the dst matrix Imgproc.cvtColor(source, destination, Imgproc.COLOR_RGB2GRAY); // Writing the image Imgcodecs.imwrite("C:/opencv/GeeksforGeeks.jpg", destination); System.out.println("The image is successfully to Grayscale"); } }
Input : Output :