各种库读取图片的比较

发布时间 2023-09-23 01:01:32作者: 失控D大白兔

1. 读入PNG图片(RGBA)

from PIL import Image
from skimage import io
import cv2

img_pillow = Image.open(path)  #<class 'PIL.PngImagePlugin.PngImageFile'>   RGBA
img_skimage = io.imread(path) #<class 'numpy.ndarray'>      RGBA
img_cv = cv2.imread(path,cv2.IMREAD_UNCHANGED) #<class 'numpy.ndarray'>  BGRA

#通过img_cv[:, :,[0,2]] = img_cv[:,:,[2,0]] 验证三者读取出来的图像是等价的numpy

2. 转化为灰度图片

from skimage.color import colorconv
#全部不一致了
gray_pillow = np.array(img_pillow.convert('L'))
gray_skimage = (colorconv.rgb2gray(colorconv.rgba2rgb(img_skimage))*255).astype(np.uint8)  #这里因为归一化了,需要重新映射
gray_cv = cv2.cvtColor(img_cv, cv2.COLOR_BGR2GRAY)