OpenCV - IMREAD_XXX 标志

OpenCV 支持各种类型的图像,例如彩色、二进制、灰度等。使用 imread() 方法和 Imgcodecs 类的预定义字段,您可以将给定图像读取为另一种类型。

imread() 方法的 flags 参数 (IMREAD_XXX)

在前面的章节中,我们已经了解了 Imgcodecs 类的 imread() 方法的语法。它接受一个字符串参数,表示要读取的图像的位置。

imread(filename)

imread() 方法有另一种语法。

imread(filename, int flags)

此语法接受两个参数 −

  • filename − 它接受一个参数 (filename),一个 String 类型的变量,表示要读取的文件的路径。

  • flags − 一个表示预定义标志值的整数值。对于每个值,这会将给定的图像读取为特定类型(灰度颜色等)。

下表列出了 Imgproc 类中提供的各个字段作为此参数的值。

S.No 字段和说明
1

IMREAD_COLOR

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

2

IMREAD_GRAYSCALE

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

3

IMREAD_LOAD_GDAL

如果将标志设置为此值,则可以加载使用 gdal 驱动程序读取图像。

4

IMREAD_ANYCOLOR

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

5

IMREAD_REDUCED_COLOR_2

IMREAD_REDUCED_COLOR_4

IMREAD_REDUCED_COLOR_8

如果将标志设置为此值,则将图像读取为三通道 BGR,并且图像大小缩小为 ½,相对于所用字段,图像原始大小的 ¼th 或 ⅛th

6

IMREAD_REDUCED_GRAYSCALE_2

IMREAD_REDUCED_GRAYSCALE_4

IMREAD_REDUCED_GRAYSCALE_8

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

7

IMREAD_UNCHANGED

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