【OpenCV 例程300篇】01. 图像的读取(cv2.imread)

专栏地址:『youcans 的 OpenCV 例程300篇 – 总目录』
01. 图像的读取(cv2.imread)
02. 图像的保存(cv2.imwrite)
03. 图像的显示(cv2.imshow)
04. 用 matplotlib 显示图像(plt.imshow)

【OpenCV 例程300篇】001. 图像的读取(cv2.imread)

函数 cv2.imread() 用于从指定的文件读取图像。

函数说明:

retval = cv.imread(filename[, flags])

  • 函数 cv2.imread() 从指定文件加载图像并返回该图像的矩阵。
  • 如果无法读取图像(文件丢失,权限不正确,格式不支持或无效),该函数返回一个空矩阵。
  • 目前支持的文件格式:
  • Windows 位图 – * .bmp,* .dib
  • JPEG 文件 – * .jpeg, .jpg,.jpe
  • JPEG 2000文件 – * .jp2
  • 便携式网络图形 – * .png
  • WebP – * .webp
  • 便携式图像格式 – * .pbm, .pgm, .ppm * .pxm,* .pnm
  • TIFF 文件 – * .tiff,* .tif

参数说明:

  • filename:读取图像的文件路径和文件名
  • flags:读取图片的方式,可选项
  • cv2.IMREAD_COLOR(1):始终将图像转换为 3 通道BGR彩色图像,默认方式
  • cv2.IMREAD_GRAYSCALE(0):始终将图像转换为单通道灰度图像
  • cv2.IMREAD_UNCHANGED(-1):按原样返回加载的图像(使用Alpha通道)
  • cv2.IMREAD_ANYDEPTH(2):在输入具有相应深度时返回16位/ 32位图像,否则将其转换为8位
  • cv2.IMREAD_ANYCOLOR(4):以任何可能的颜色格式读取图像
  • 返回值 retval:读取的 OpenCV 图像,nparray 多维数组

注意事项:

  1. OpenCV 读取图像文件,返回值是一个nparray 多维数组。OpenCV 对图像的任何操作,本质上就是对 Numpy 多维数组的运算。
  2. OpenCV 中彩色图像使用 BGR 格式,而 PIL、PyQt、matplotlib 等库使用的是 RGB 格式。
  3. cv2.imread() 如果无法从指定文件读取图像,并不会报错,而是数返回一个空矩阵。
  4. cv2.imread() 指定图片的存储路径和文件名,在 python3 中不支持中文和空格(但并不会报错)。必须使用中文时,可以使用 cv2.imdecode() 处理,参见扩展例程。
  5. cv2.imread() 读取图像时默认忽略透明通道,但可以使用 CV_LOAD_IMAGE_UNCHANGED 参数读取透明通道。
  6. 对于彩色图像,可以使用 flags=0 按照读取为灰度图像。

基本例程:


    imgFile = "../images/imgLena.tif"
    img1 = cv2.imread(imgFile, flags=1)
    img2 = cv2.imread(imgFile, flags=0)

扩展例程:


    import urllib.request as request
    response = request.urlopen("https://profile.csdnimg.cn/8/E/F/0_youcans")
    imgUrl = cv2.imdecode(np.array(bytearray(response.read()), dtype=np.uint8), -1)

    imgFile = "../images/测试图01.png"

    img = cv2.imdecode(np.fromfile(imgFile, dtype=np.uint8), -1)

【OpenCV 例程300篇】01. 图像的读取(cv2.imread)

(本节完)

版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/121168935)
Copyright 2022 youcans, XUPT
Crated:2021-11-18
更多内容请见:>『youcans 的 OpenCV 例程300篇 – 总目录』 (https://blog.csdn.net/youcans/article/details/125112487)

Original: https://blog.csdn.net/youcans/article/details/121168935
Author: YouCans
Title: 【OpenCV 例程300篇】01. 图像的读取(cv2.imread)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/636486/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球