📜  将 NumPy 数组转换为图像

📅  最后修改于: 2022-05-13 01:55:28.317000             🧑  作者: Mango

将 NumPy 数组转换为图像

NumPy或数字Python是一个流行的数组操作库。由于图像只是带有各种颜色代码的像素阵列。 NumPy 可用于将数组转换为图像。 除了 NumPy,我们将使用PIL或Python图像库(也称为 Pillow)来操作和保存数组。

方法:

  1. 创建一个 numpy 数组。
  2. 将上述数组重塑为合适的尺寸。
  3. 使用 PIL 库从上述数组创建一个图像对象。
  4. 以合适的文件格式保存图像对象。

下面是实现:

Python3
# Python program to convert
# numpy array to image
  
# import required libraries
import numpy as np
from PIL import Image as im
  
# define a main function
def main():
  
    # create a numpy array from scratch
    # using arange function.
    # 1024x720 = 737280 is the amount 
    # of pixels.
    # np.uint8 is a data type containing
    # numbers ranging from 0 to 255 
    # and no non-negative integers
    array = np.arange(0, 737280, 1, np.uint8)
      
    # check type of array
    print(type(array))
      
    # our array will be of width 
    # 737280 pixels That means it 
    # will be a long dark line
    print(array.shape)
      
    # Reshape the array into a 
    # familiar resoluition
    array = np.reshape(array, (1024, 720))
      
    # show the shape of the array
    print(array.shape)
  
    # show the array
    print(array)
      
    # creating image object of
    # above array
    data = im.fromarray(array)
      
    # saving the final output 
    # as a PNG file
    data.save('gfg_dummy_pic.png')
  
# driver code
if __name__ == "__main__":
    
  # function call
  main()


输出:


(737280,)
(1024, 720)
[[  0   1   2 ... 205 206 207]
 [208 209 210 ... 157 158 159]
 [160 161 162 ... 109 110 111]
 ...
 [144 145 146 ...  93  94  95]
 [ 96  97  98 ...  45  46  47]
 [ 48  49  50 ... 253 254 255]]
这就是一个 numpy 数组的样子!

gfg_dummy_pic.png 1024 x 720

注意:每个数组都不能转换为图像,因为图像的每个像素都包含特定的颜色代码,如果给定数组的格式不合适,库将无法正确处理它。