使用Java OpenCV库将彩色图像读取为灰度图像。


Imgcodecs类的**imread()**方法接受一个表示文件名字符串值的参数。此方法将指定文件的内容读取到矩阵对象中并返回它。使用此方法,您可以读取图像的内容。

此外,Imgcodecs类还提供了此方法的另一个变体,它接受一个整数作为参数,该整数表示指定所需读取模式的标志。

以下是可作为标志值使用的**Imgcodecs**类的各个字段。

  • **IMREAD_COLOR** − 如果标志设置为此值,则加载的图像将转换为3通道BGR(蓝绿红)彩色图像。

  • **IMREAD_GRAYSCALE** − 如果标志设置为此值,则加载的图像将转换为单通道灰度图像。

  • **IMREAD_LOAD_GDAL** − 如果标志设置为此值,则可以使用GDAL驱动程序加载图像。

  • **IMREAD_ANYCOLOR** − 如果标志设置为此值,则图像将以任何可能的颜色格式读取。

  • **IMREAD_REDUCED_COLOR_2 或,
    IMREAD_REDUCED_COLOR_4 或,
    IMREAD_REDUCED_COLOR_8** − 如果标志设置为此值,则图像将读取为三通道BGR,并且图像大小将相对于所使用的字段缩小到原始图像大小的½、¼或⅛。

  • **IMREAD_REDUCED_GRAYSCALE_2 或,
    IMREAD_REDUCED_GRAYSCALE_4 或,
    IMREAD_REDUCED_GRAYSCALE_8** − 如果标志设置为此值,则图像将读取为单通道灰度图像,并且图像大小将相对于所使用的字段缩小到原始图像大小的½、¼或⅛。

  • **IMREAD_UNCHANGED** − 如果标志设置为此值,则加载的图像将按原样返回。

因此,如果您需要将彩色图像读取为灰度图像,则应将IMREAD_GRAYSCALE或IMREAD_REDUCED_GRAYSCALE_X作为参数传递。

示例1

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
public class ReadAsGreyScale {
   public static void main(String args[]) {
      //Loading the OpenCV core library
      System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
      //Reading the Image from the file
      Mat matrix = Imgcodecs.imread("D://images//sunset.jpg", Imgcodecs.IMREAD_GRAYSCALE);
      //Writing the image
      Imgcodecs.imwrite("D://images//sunset_greyscale.jpg", matrix);
      System.out.println("Image re-Saved");
   }
}

输入

输出

示例2

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
public class ReadingAsGrey2 {
   public static void main(String args[]) {
      //Loading the OpenCV core library
      System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
      String input = "D://images//sunset.jpg";
      //Reading the Image from the file
      Mat matrix = Imgcodecs.imread(input, Imgcodecs.IMREAD_REDUCED_GRAYSCALE_4 );
      //Writing the image
      Imgcodecs.imwrite("D://images//sunset_grey_8.jpg", matrix);
      System.out.println("Image re-Saved");
   }
}

输出

更新于:2020年4月8日

251 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.