一.PIL(pillow)一些常用方法
安装pillow,直接用pip命令就行:
pip install pillow
1.读取图像
from PIL import Image
Img = Image.open(img_path) #输出的Img是Image类格式的一个对象
既然是对象,就可以利用"Img.函数名"调用Image中的各种方法。
2.图像旋转,翻转
Img.rotate(90) #图像旋转90度,默认是逆时针
Img.transpose(Image.FLIP_TOP_BOTTOM) #图像上下翻转
3.Img对象转数组格式,可以用numpy转换
Import numpy as np
ArraImg = np.array(Img)
4.array图像数组转Img
图像调用Image类中的各种图像处理的方法时,要求图像是Image类对象的格式,如果输入的是array图像数组,可以通过以下方法将图像数组转换成Image类对象的格式:
Img = Image.fromarray(Arrayimg)
5.显示图像
可以用matplotlib工具(推荐使用)
import matplotlib.pyplot as plt
plt.imshow(Img,'gray') #Image类对象的格式的数据,默认显示彩色图像,加入关键字‘gray’显示灰度图
plt.show()
新建窗口:
plt.figure()#类似于matlab里的figure
二.Opencv一些常用方法
安装opencv,也是直接用pip命令就行:
pip install opencv-python
1.读图像
Import cv2 as cv
Img = cv.imread(img_path,cv.IMREAD_GRAYSCALE)
#cv.IMREAD_GRAYSCALE表示按照灰度图方式读取图像,默认是彩色图读取方式,也可以选别的参数,如不区分图像位深的cv.IMREAD_ANYDEPTH
#注意:windows系统中img_path不能带有中文,否则读取图像为空 ,ubuntu中就可以
opencv生成的Img直接是array格式,与PIL不同。
2.图像水平翻转
import cv2 as cv
cv.flip(Img,flipCode)
#flipCode>0,水平翻转;flipCode=0,垂直翻转;flipCode<0,水平和垂直都翻转
3.旋转一定的角度
假设,顺时针旋转角度为RotateAngle,图像旋转实现如下:
[rows,cols] = np.shape(Img)
center = (cols/2,rows/2)
M = cv.getRotationMatrix2D((cols/2,rows/2),360-RotateAngle,1)
RotateImg = cv.warpAffine(Img,M,(cols,rows))
#利用getRotationMatrix2D函数配合warpAffine实现图像旋转
4.显示图像
python的opencv显示图像的函数是imshow(),和matlab一样:
cv.namedWindow('窗口',0) #namedWindow是创建窗口,默认是1(固定窗口大小),改成0的意思是自适应的调整窗口大小
cv.imshow('窗口',Img)
cv.waitKey() #不加这句话窗口就卡住,有点坑…
不推荐使用上述方式显示图像,有点坑。。。
5.裁剪图像
import cv2 as cv
Crop_Img = cv.getRectSubPix(Img, (98, 33), (1, 1)) #(98,33)代表裁剪区域的大小,(1,1)代表裁剪的中心
6.写图像
写图像也和matlab函数一样,都是imwrite()
import cv2 as cv
cv.imwrite(save_dir,Img)
以后再有常用到的方法,会继续添加,欢迎补充