Python中,主要使用的图像处理库是PIL(Python Imaging Library)opencvscikit-image1. 用PIL读写图片1

python读入pdf python读入图片_Image

from PIL import Image
path = 'data/timg.jpg'
img = Image.open(path)#读取图片
print(type(img))#<class 'PIL.PngImagePlugin.PngImageFile'>
print(img.mode,img.size,img.format)#RGB (599, 803) JPEG
img.save('a.jpg')#保存图片
img.show()#显示图像
img1 = np.array(img)
print(img1.shape)#(803, 599, 3)

PIL读出的图片是PIL.PngImagePlugin.PngImageFile格式。img.size得到的尺寸是(W,H)形式的,转换成numpy数据后就是(H,W,C).颜色模式img.modeRGB
2. opencv读写图片2

import cv2 as cv

img = cv.imread('data/timg.jpg')  # 灰度模式读取图片
print(type(img))#<class 'numpy.ndarray'>
print(img.shape)#(803, 599, 3)
cv.imshow('image', img)  # 显示图片,窗口名称为'image'
k = cv.waitKey(0)  # 无限等待一个键击,将此键击存在k变量中
if k == 27:  # 27代表esc,可以查看ascii码表
    cv.destroyAllWindows()  # 退出窗口
elif k == ord('s'):  # 等待s键,ord函数可以将字符串转换为ascii码
    cv.imwrite('a.png', img)  # 写入图片
    cv.destroyAllWindows()  # 关闭窗口

opencv读出的图片是numpy.ndarray格式。尺寸是(H,W,C)形式.颜色模式为BGR`。

3. scikit-image读写图片

from skimage.io import imshow,imsave
from matplotlib import pyplot as plt

img = io.imread('data/timg.jpg')#读取图片
print(type(img))#<class 'numpy.ndarray'>
print(img.shape)#(803, 599, 3)
imshow(img)#显示图像要借助matplotlib库
imsave('a3.jpg',img)#保存图像
plt.show()#显示图像

scikit-image读出的图片是numpy.ndarray格式。尺寸是(H,W,C)形式.颜色模式为RGB`。

python中PIL.Image和OpenCV图像格式相互转换skimage与opencv图片格式的相互转换