Python中cv2.imwrite函数用法介绍

Python中cv2.imwrite函数用法介绍

Python中cv2.imwrite函数用法介绍

1. 简介

cv2.imreadOpenCV库中的一个函数,用于将图像从文件中读取到内存中。它接受图像文件的路径作为参数,并返回一个numpy数组,表示图像的像素数据。本文将详细介绍cv2.imread函数的用法,包括参数说明、返回值以及示例代码等。

2. 函数原型

cv2.imread函数的原型如下:

cv2.imread(filename, flags)
Python

3. 参数说明

cv2.imread函数有两个参数:

  • filename:要读取的图像文件的路径。
  • flags:设置图像读取的方式。可以为以下几种值之一:
    标志 描述
    cv2.IMREAD_COLOR 默认方式,读取彩色图像。将图像加载为RGB图像,忽略图像的Alpha通道。
    cv2.IMREAD_GRAYSCALE 以灰度图像方式读取图像。
    cv2.IMREAD_UNCHANGED 以包含Alpha通道的方式读取图像。

    默认值为cv2.IMREAD_COLOR

4. 返回值

cv2.imread函数返回一个numpy数组,表示读取到的图像数据。如果读取失败,返回值为None

5. 示例代码

示例1:读取彩色图像

import cv2

# 读取彩色图像
img = cv2.imread('image.jpg')

# 打印图像的形状
print('图像形状:', img.shape)

# 打印图像的像素值
print('图像像素值:', img)
Python

运行结果:

图像形状: (480, 640, 3)
图像像素值: [[[51 59 47]
  [48 56 44]
  [40 48 36]
  ...
  [80 90 33]
  [71 81 24]
  [67 77 22]]

 [[61 69 57]
  [57 65 53]
  [49 57 45]
  ...
  [81 91 34]
  [78 88 31]
  [75 85 30]]

 ...

 [[14 17 17]
  [14 17 17]
  [12 15 15]
  ...
  [11 14 13]
  [12 15 14]
  [12 15 14]]

 [[11 14 14]
  [11 14 14]
  [10 13 13]
  ...
  [11 14 13]
  [12 15 14]
  [12 15 14]]

 [[11 14 14]
  [11 14 14]
  [11 14 14]
  ...
  [11 14 13]
  [12 15 14]
  [11 14 13]]]
Python

示例2:读取灰度图像

import cv2

# 读取灰度图像
img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)

# 打印图像的形状
print('图像形状:', img.shape)

# 打印图像的像素值
print('图像像素值:', img)
Python

运行结果:

图像形状: (480, 640)
图像像素值: [[ 53  52  47 ...  68  62  62]
 [ 61  59  54 ...  69  65  65]
 [ 50  47  42 ...  68  65  65]
 ...
 [ 16  16  14 ...  14  15  15]
 [ 13  13  12 ...  14  15  15]
 [ 13  13  13 ...  14  15  14]]
Python

示例3:读取包含Alpha通道的图像

import cv2

# 读取包含Alpha通道的图像
img = cv2.imread('image.png', cv2.IMREAD_UNCHANGED)

# 打印图像的形状
print('图像形状:', img.shape)

# 打印图像的像素值
print('图像像素值:', img)
Python

运行结果:

图像形状: (480, 640, 4)
图像像素值: [[[ 51  59  47 255]
  [ 48  56  44 255]
  [ 40  48  36 255]
  ...
  [ 80  90  33 255]
  [ 71  81  24 255]
  [ 67  77  22 255]]

 [[ 61  69  57 255]
  [ 57  65  53 255]
  [ 49  57  45 255]
  ...
  [ 81  91  34 255]
  [ 78  88  31 255]
  [ 75  85  30 255]]

 ...

 [[ 14  17  17 255]
  [ 14  17  17 255]
  [ 12  15  15 255]
  ...
  [ 11  14  13 255]
  [ 12  15  14 255]
  [ 12  15  14 255]]

 [[ 11  14  14 255]
  [ 11  14  14 255]
  [ 10  13  13 255]
  ...
  [ 11  14  13 255]
  [ 12  15  14 255]
  [ 12  15  14 255]]

 [[ 11  14  14 255]
  [ 11  14  14 255]
  [ 11  14  14 255]
  ...
  [ 11  14  13 255]
  [ 12  15  14 255]
  [ 11  14  13 255]]]
Python

示例4:读取图像失败

import cv2

# 读取图像失败
img = cv2.imread('image_not_exist.jpg')

# 打印返回值
print('返回值:', img)
Python

运行结果:

返回值: None
Python

示例5:将图像保存到文件

import cv2

# 读取图像
img = cv2.imread('image.jpg')

# 将图像保存到文件
cv2.imwrite('image_copy.jpg', img)

# 读取保存后的图像
img_copy = cv2.imread('image_copy.jpg')

# 打印保存后的图像形状
print('保存后的图像形状:', img_copy.shape)
Python

运行结果:

保存后的图像形状: (480, 640, 3)
Python

6. 总结

cv2.imread函数是OpenCV库中一个常用的图像读取函数,它可以方便地将图像从文件中读取到内存中。通过本文的介绍,我们了解了cv2.imread函数的用法,包括参数说明、返回值以及示例代码等。希望本文对你理解并使用“cv2.imwrite函数有所帮助。在使用cv2.imread`函数时,需要注意文件路径的正确性,并选择合适的读取方式。

尽管cv2.imread函数能够读取多种格式的图像文件,但可能会在某些情况下失败。因此,在使用时应注意检查返回值,确保图像的读取成功。

此外,cv2.imwrite函数也是一个很有用的函数,它可以将图像数据保存到文件中。使用该函数时,需要提供文件路径以及要保存的图像数据。通过使用cv2.imread函数读取保存后的图像,我们可以确保图像成功地保存到了文件中。

总的来说,cv2.imread函数在图像处理中具有广泛的应用,它为我们提供了方便快捷的图像读取功能。通过合理使用该函数,我们可以在实际项目中进行各种图像处理任务。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册