Python 读取,显示,保存图片的方法
- opencv
import cv2 as cv
# load
image_path=' E:\youku\data\data2\'
save_path=' E:\youku\data\data1\'
img = cv.imread(image_path)
# shape=(height, width, channel)
h,w,c = img.shape
#resize
crop_size=(320, 480)
img_new = cv2.resize(img, crop_size, interpolation = cv2.INTER_CUBIC)
# show
cv.imshow('window_title', img)
# save
cv.imwrite(save_path, img)
- matplotlib
import matplotlib.pyplot as plt # plt 用于显示图片
import matplotlib.image as mpimg # mpimg 用于读取图片
import numpy as np
# load
img = mpimg.imread('dog.jpg')
# 此时 img 就已经是一个 np.array 了,可以对它进行任意处理
# height, width, channel=(360, 480, 3)
h,w,c = img.shape
# show
plt.imshow(img) # 显示图片
plt.axis('off') # 不显示坐标轴
plt.show()
# save
# 适用于保存任何 matplotlib 画出的图像,相当于一个 screencapture
plt.savefig('fig_dog.png')
- PIL
from PIL import Image
# load
im = Image.open('cat.jpg')
# show
im.show()
"""
# 返回 image's size w,h = (480, 360) *****
w,h = img.size
# PIL.JpegImagePlugin.JpegImageFile
type(img)
# 直接调用Image类的save方法
img.save('new_cat.png')
#im.save(outfile, options…)
#outfile=os.path.join(路径,图像文件名)
"""
from PIL import Image
import matplotlib.pyplot as plt
img=Image.open('/home/wanghao/Pictures/001.jpg')
w2= img.size[0]
h2= img.size[1]
#resize
img.resize((w, h), Image.BICUBIC)
#save
img.save(os.path.join(out_path, os.path.basename(im_path)))
plt.figure("head")
plt.imshow(img)
plt.show()
#########################
from PIL import Image
im = Image.open(filename)#返回一个Image对象
print('宽:%d,高:%d'%(im.size[0],im.size[1]))