2021年6月8日 / 53次阅读 / Last Modified 2021年6月8日
图像处理
本文记录如何将PIL的Image对象与numpy的ndarray对象互转。
将PIL的Image对象专为ndarray对象:
>>> from PIL import Image
>>> pimg = Image.open('bizhi01.jpg')
>>>
>>> import numpy as np
>>> nimg = np.array(pimg)
>>> nimg.shape
(600, 800, 3)
>>> nimg.dtype
dtype('uint8')
>>>
>>> nimg2 = np.asarray(pimg)
>>> nimg2.shape
(600, 800, 3)
>>> nimg2.dtype
dtype('uint8')
创建ndarray的接口,就可以直接输入PIL的Image对象。
网上有人说,如果出现read-only这样的提示,此时得到的ndarray只读,可以通过下面的方式来修改:
>>> nimg.flags
C_CONTIGUOUS : True
F_CONTIGUOUS : False
OWNDATA : True
WRITEABLE : True
ALIGNED : True
WRITEBACKIFCOPY : False
UPDATEIFCOPY : False
>>> nimg.flags.writeable
True
>>> nimg.flags.writeable = False
>>> nimg.flags.writeable = True
将ndarray转换成PIL的Image对象:
>>> pimg2 = Image.fromarray(nimg2)
>>> pimg2.mode
'RGB'
接口为Image.fromarray
-- EOF --
本文链接:https://www.pynote.net/archives/3706
《PIL的Image对象与ndarray互转》有1条留言
前一篇:math.tau=2π
后一篇:YCbCr与RGB的转换
Ctrl+D 收藏本页
©Copyright 麦新杰 Since 2019 Python笔记
将ndarray的yuv数据,转成pillow的image,用image.convert转rgb,然后再转回rgb的ndarray数据,显示。 [ ]