python几种图片操作方式

整理了python不同种图片操作方式

PILmatplotlibscikit-imageopencv
包导入from PIL import Imageimport matplotlib.image as mpimgfrom skimage import ioimport cv2
读取图片img=Image.open("lena.jpg") img为PIL图片类型img=mpimg.imread("lena.jpg") img为narray类型(0-255整数)img=io.imread("lena.jpg") img为narray类型(0-255整数)img=cv2.imread("lena.jpg") img为narray类型(0-255整数)
显示图片img.show()
用电脑自带的图片查看器打开
plt.imshow(img)
plt.show()#显示
io.imshow(img)
plt.show()#显示
cv2.imshow("window_name",img)
plt.imshow(img)
plt.show()#都可以用这种方法显示
保存图片img.save("new_lena.jpg")mpimg.imsave("new_lena.jpg",img)io.imsave("new_lena.jpg",img)cv2.imsave("new_lena.jpg",img)
数据类型转换将PIL图片类型转换为narray数组:
img_array = np.array(img)
将narray数组转换为PIL图片:
img=Image.fromarray(np.uint8(img_array))

几种不同的方式最大的区别在于读取图片的数据类型是PIL还是narray,只要搞清楚这一点就可以使用不同函数达到相同的目的。
我个人比较喜欢下面这一套:

import matplotlib.image as mpimg
import matplotlib.pyplot as plt
import numpy as np
##读取图片
img=mpimg.imread(r"E:/lena.jpg")
##显示图片
plt.imshow(img) 
plt.show()#一定有这一句不然显示不出来
print("shape:{}".format(np.shape(img)))#查看数据类型
##保存图片
mpimg.imsave(r"E:/new_lena.jpg")

输出结果:shape:(500, 500, 3)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值