numpy array与PIL.Image的转换

PIL Image转numpy array

ndarray = np.asarray(PIL.Image.open(path))

但是注意用PIL.Image.open(path)得到的是(w,h)

而用np.asarray(PIL.Image.open(path))转成numpy array就是(h,w,3)的shape了

转成numpy array之后大概率是用cv2保存,但是注意cv2是BGR的,而PIL Image是RBG的,需要转一下

img_new = cv2.cvtColor(img_new, cv2.COLOR_RGB2BGR)

numpy array转PIL Image

image = PIL.Image.fromarray(ndarray.astype(np.uint8))
img = cv2.imread("1.jpg")  
img = cv2.cvtColor(np.asarray(im), cv2.COLOR_RGB2BGR)
image = Image.fromarray(img)

这里也是,cv2读的img是(h,w,3),转成PIL Image后size是(w,h)

注意cv2是BGR的,而PIL Image是RBG的,需要转一下

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个Python类,用于将PIL.Image对象转换Numpy数组,并且可以选择是否置数组的维度。它可以作为数据处理管道中的一个步骤,例如在图像分类或物体检测任务中。下面是一个简单的示例代码,演示如何将图像文件转换Numpy数组,并应用Image2Array类: ```python from PIL import Image import numpy as np class Image2Array(object): """ transfer PIL.Image to Numpy array and transpose dimensions from 'dhwc' to 'dchw'. Args: transpose: whether to transpose or not, default True, False for slowfast. """ def __init__(self, transpose=True): self.transpose = transpose def __call__(self, results): """ Performs Image to NumpyArray operations. Args: imgs: List where each item is a PIL.Image. For example, [PIL.Image0, PIL.Image1, PIL.Image2, ...] return: np_imgs: Numpy array. """ imgs = results['imgs'] np_imgs = (np.stack(imgs)).astype('float32') if self.transpose: np_imgs = np_imgs.transpose(0, 3, 1, 2) # tchw results['imgs'] = np_imgs return results # 读取图像文件 img = Image.open("image.jpg") # 应用Image2Array类将图像转换Numpy数组 image2array = Image2Array() np_img = image2array({'imgs': [img]})['imgs'][0] # 输出数组形状 print(np_img.shape) ``` 在上面的代码中,我们首先使用PIL库打开一个图像文件,然后使用Image2Array类将其转换Numpy数组。最后,我们输出数组的形状。注意,我们将图像文件转换为单个PIL.Image对象,并将其放入一个列表中,因为Image2Array类预期的输入是一个图像列表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值