图像处理之PIL.Image与numpy.array之间的相互转换

使用cv2.warpAffine进行图像平移会使得图片从PIL.Image格式转换为numpy格式,源码中

src = np.array(image).astype(np.uint8)  # image: img (PIL Image):

后续如果需要继续对PIL.Image格式操作,需要

from torchvision import transforms
img=transforms.ToPILImage()(img) #注意用法

当使用PIL.Image.open()打开图片后,如果要使用img.shape函数,需要先将image形式转换成array数组

img = numpy.array(im)
比如要加椒盐噪声
    for k in range(n):
        i = int(numpy.random.random() * img.shape[1]);
        j = int(numpy.random.random() * img.shape[0]);
        if img.ndim == 2:
            img[j,i] = 255
        elif img.ndim == 3:
            img[j,i,0]= 255
            img[j,i,1]= 255
            img[j,i,2]= 255
最后将array转化为inage形式
img = Image.fromarray(img.astype('uint8')).convert('RGB')

你可能感兴趣的:(百宝工具箱,python,项目涉及小trick)