图像读取与显示
在使用opencv-python库时,需要做的最简单工作就是导入库文件,读取图像,本文章主要介绍cv.imread()函数的相关属性。
cv.imread()
img = cv.imread(filename
[,flags])
#filename:需要读取图像的路径,包含图像的名称和图像的扩展名
#flags:读取图像的标志,如将彩色图像按照灰度图来读取,默认是按照彩色图像格式读取。
cv.imread()函数用于读取指定的图像文件,并将读取回来的结果返回。如果图像的路径错误、破损或者格式不支持,则无法正确读取图像,但此时并不会报错,而是返回None。因此,使用命令print(img)查看得到的结果是否为None,进而判断是否读取成功了图像。
import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv
img = cv.imread(路径)#默认以彩色图像读取图像
if img is None:
print(提示内容)
#当然我们也可以将if img is None:这一段代码改为print(img),这两种写法都是可以的。
标志 | 简记 | 作用 |
---|---|---|
CV.IMREAD_UNCHANGED | -1 | 按照图像原样读取,保留alpha通道(第四个通道) |
CV.IMREAD_GRAYSCALE | 0 | 将图像转换为单通道灰度图像读取 |
CV.IMREAD_COLOR | 1 | 将图像转换为三通道BGR色彩图像读取 |
CV.IMREAD_ANYDEPTH | 2 | 保留原图像的16位、32位深度。若不做申明,则转换8位深度后读取 |
CV.IMREAD_ANYCOLOR | 4 | 以任何可能出现的颜色格式读取图像 |
CV.IMREAD_LODA_GDAL | 8 | 使用GDAL驱动程序加载 |
CV.IMREAD_REDUCED_GRAYSCALE_2 | 16 | 将图像转化为单通道灰度图像,尺寸缩小至原来的一半,尺寸可以修改改为4时,缩小四分之一。 |
CV.IMREAD_REDUCED_COLOR_2 | 17 | 将图像转化为三通道色彩图像,尺寸缩小至原来的一半,尺寸可以修改改为4时,缩小四分之一。 |
CV.IMREAD_IGNORE_ORIENTATION | 128 | 不以EXIF的方向旋转图像 |
cv.imread()函数能够读取很多格式的图像文件,但是由于不同的操作系统使用的编解码器不同,因此在某些系统中能够读取的图像文件可能在其他的系统中就不能正常读取。opencv默认自带了部分图像解码器libjpeg、libpng、libtiff、libjasper,所以对于jpeg(jpg、jpeg、jpe)、png、tiff(tiff、tif)等格式是可以正常读取的。
默认,读取图像的像素数量必须小于2的30次方,在某些领域的图像可能会超过这个数值,这是我们可以通过修改系统变量中CV.OPENCV_IO_MAX_IMAGE_PLXELS来调整能够读取的图像最大像素数目。
文章主要讲述了opencv4 对于图像读取相关内容进行了一些简单的介绍,其中更深的知识,还需要我们自己进行探索。由于个人能力有限,文章中若有不对之处,请谅解。
文章参考了冯振的基于python的opencv4详解。