python图片操作方法总结

python中因为各种第三方包丰富,所以对图片进行操作时的方法很多。但是用多了难免会记混,所以就小小的总结一下。

1.利用OpenCv操作

import cv2

###获取图片并显示
img = cv2.imread('E:\\myPicture\\1.jpg')  #获取图片,读取的格式为numpy.ndarray

cv2.imshow('windows', img) #显示图片,第一个参数为窗口名,第二个参数为图片
cv2.waitKey(0) #窗口显示时间,‘0’表示一直等待(直到按下任意键退出)
cv2.destroyAllWindows() #将所有窗口从内存中清除

###保存图片
cv2.imwrite('E:\\myPicture\\2.jpg', img) #图片保存路径,图片

###查看图片的属性
print(img.dtype) #输出图片的数据类型
print(img.shape) #输出图片的形状(行数,列数,通道数(灰度图则无通道数)组成的元组)
print(img.size) #输出图片的额像素数目

2.PIL中Image模块

import numpy as np
from PIL import Image

###获取图片并显示
img = Image.open('E:\\myPicture\\1.jpg') #图片路径,此时img的数据类型不是numpy.ndarray格式
img.show() #显示图片

###保存图片
img.save('E:\\myPicture\\1.png') #将图片以指定格式保存到指定路径

###查看图片属性
print(img.format) #输出图片格式(JPEG,PNG等)
print(img.mode) #输出图片模式,常见的有L(灰度图像),RGB(彩色图像)等
print(type(img)) #此例输出为<class 'PIL.JpegImagePlugin.JpegImageFile'>
print(img.size) #输出图片尺寸

### 将图片数据类型更改为numpy.ndarray
img = np.array(img) #将img转化为numpy.ndarray数据类型
print(type(img)) #输出为<class 'numpy.ndarray'>

3.matplotlib.pyplot读取图片

import matplotlib.pyplot as plt

###读取图片
img = plt.imread('E:\\myPicture\\1.jpg') #读取指定路径的图片,img数据类型为numpy.ndarray
plt.imshow(img) #显示图片

###保存图片
plt.imsave('E:\\myPicture\\1.png', img) #指定路径,指定格式保存

###查看图片属性
print(img.shape) #输出图片形状
print(type(img)) #输出img数据类型
print(img.size) #输出图片尺寸
print(img.dtype) #输出图片的数据格式

猜你喜欢

转载自blog.csdn.net/qq_45847100/article/details/122687111