【opencv图像处理】图片的读取——cv2.imgread各种读取方式对比

家住魔仙堡 提交于 2019-12-03 09:35:16

以下实验基于python==3.6、opencv-python==4.1.0.25、imutils==0.5.2


图片的读取 cv2.imread

该方法第一个参数为文件名filename(文件路径+文件名)

第二个为读取方式flags,可选参数

IMREAD_ANYCOLOR = 4
IMREAD_ANYDEPTH = 2
IMREAD_COLOR = 1
IMREAD_GRAYSCALE = 0

IMREAD_IGNORE_ORIENTATION = 128

IMREAD_LOAD_GDAL = 8

IMREAD_REDUCED_COLOR_2 = 17
IMREAD_REDUCED_COLOR_4 = 33
IMREAD_REDUCED_COLOR_8 = 65

IMREAD_REDUCED_GRAYSCALE_2 = 16
IMREAD_REDUCED_GRAYSCALE_4 = 32
IMREAD_REDUCED_GRAYSCALE_8 = 64

IMREAD_UNCHANGED = -1

前4中读取方式的shape和显示效果如下

可见IMREAD_GRAYSCALEIMREAD_ANYDEPTH都只读取了一层灰度图像

IMREAD_COLORIMREAD_ANYCOLOR读取了3层彩色图像

因为这里只测试了jpeg图片,可能在读取其他图片的情况下会有不同结果,大家可以自己试一下

cv2.IMREAD_GRAYSCALE (2048, 1536)
cv2.IMREAD_COLOR (2048, 1536, 3)
cv2.IMREAD_ANYDEPTH (2048, 1536)
cv2.IMREAD_ANYCOLOR (2048, 1536, 3)


下面是IMREAD_IGNORE_ORIENTATIONIMREAD_LOAD_GDALIMREAD_UNCHANGED

cv2.IMREAD_IGNORE_ORIENTATION (2048, 1536)
cv2.IMREAD_LOAD_GDAL (2048, 1536, 3)
cv2.IMREAD_UNCHANGED (2048, 1536, 3)

下面是IMREAD_REDUCED_COLOR_2IMREAD_REDUCED_COLOR_4IMREAD_REDUCED_COLOR_8

像素分别减少为原来的1/2、1/4、1/8,但依然是彩色像


cv2.IMREAD_REDUCED_COLOR_2 (1024, 768, 3)
cv2.IMREAD_REDUCED_COLOR_4 (512, 384, 3)
cv2.IMREAD_REDUCED_COLOR_8 (256, 192, 3)


下面是IMREAD_REDUCED_GRAYSCALE_2IMREAD_REDUCED_GRAYSCALE_4IMREAD_REDUCED_GRAYSCALE_8

像素分别减少为原来的1/2、1/4、1/8,并且都是灰度图像

cv2.IMREAD_REDUCED_GRAYSCALE_2 (1024, 768)
cv2.IMREAD_REDUCED_GRAYSCALE_4 (512, 384)
cv2.IMREAD_REDUCED_GRAYSCALE_8 (256, 192)

注:为了方便比较,以上所有图片在显示的时候又统一缩放为(512, 384)大小的图片并排显示

示例代码已经上传到github

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!