首页 > 解决方案 > PIL Image 无法使用 skimage.io 打开转换后的图像

问题描述

我对保存在 PFM 文件中的浮点数组执行了剪切和水平翻转转换,然后通过以下代码将它们保存为 tif 文件:

import os
from scipy import ndarray

  # image processing library
import skimage as sk
from skimage.transform import warp
from skimage import util
from skimage import io
import numpy as np

def shear(image_array: ndarray, shear=10):
    tf_augment = sk.transform.AffineTransform(shear=np.deg2rad(shear))
    return  warp(image_array, tf_augment, order=1, preserve_range=True, 
    mode='edge')

def horizontal_flip(image_array: ndarray):
    return image_array[:, ::-1]

image_path='./train/0006.pfm'
image_to_transform, scale=readPFM(image_path)   

flipped_image1=horizontal_flip(image_to_transform)
io.imsave("flipped_image1.tif", flipped_image1)

sheared_image1 =shear(image_to_transform,5)
io.imsave("sheared_image1.tif", sheared_image1)

但是,当我尝试使用 PIL 框架打开这些图像时,它适用于翻转的图像,但不适用于剪切的图像:

from PIL import Image
Image.open("sheared_image1.tif")

我得到了错误

 OSError: cannot identify image file 'sheared_image1.tif'

谁能向我解释原因,或者如何通过 skimage 框架保存我转换后的图像以便能够用 PIL 读取它们(我必须用 PIL 读取它们以用于后面的目的)

标签: pythonpython-imaging-librarytiffscikit-image

解决方案


推荐阅读