前言
cv.imread函数用于读取指定的图像文件,并将读取回来的结果返回。如果图像的路径错误、破损或者格式不支持,则无法正确读取图像,但此时并不会报错,而是返回None。因此,使用命令print(img)查看得到的结果是否为None,进而判断是否读取成功了图像。函数的第一个参数以字符串形式给出需要读取的图像的路径。
一、cv.imread函数是什么?
其中,cv.imread函数中的flags在不同的参数下,可以达到不一样的效果,Opencv给出了13种读取图像的形式,如原样式读取、以灰度图读取、以彩色图读取、多位数读取、将图像缩小一定尺寸读取等。flags在默认情况下,以彩色图的形式读取,即CV.IMREAD_COLOR。
二、使用步骤
1.flags参数作用
标志flags | 简记 | 作用 |
---|---|---|
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的方向旋转图像 |
img = cv2.imread(filename
[,flags])
#filename:图片的路径,包含名称
#flags:读取图片的标志
2.注意事项
cv.imread函数能够读取很多格式的图像文件,但是由于不同的操作系统使用的编解码器不同,因此在某些系统中能够读取的图像文件可能在其他的系统中就不能正常读取。opencv默认自带了部分图像解码器libjpeg、libpng、libtiff、libjasper,所以对于jpeg(jpg、jpeg、jpe)、png、tiff(tiff、tif)等格式是可以正常读取的。默认,读取图像的像素数量必须小于2的30次方,在某些领域的图像可能会超过这个数值,这是我们可以通过修改系统变量中CV.OPENCV_IO_MAX_IMAGE_PLXELS来调整能够读取的图像最大像素数目。