1.openCV,底层由c/c++构成,运行速度较快
2.PIL(Python Image Library),
3.matplotlib,Matplotlib 是 Python 的绘图库。它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案
"""
# open CV的简单使用
def test_openCV():
"""
轻量且高效,由一系列C函数和少量C++类构成,
同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法
可实现计算机图像、视频编辑
广泛应用于图像识别、运动跟踪、机器视觉等领域
"""
# 引入
import cv2
# 图像的读写操作
image1 = cv2.imread('peiqi.png')
# 灰度模式打开
image2 = cv2.imread('peiqi.png',0)
# 显示图片
cv2.imshow('image', image1)#第一个为显示的图片名字,第二个为图片
cv2.waitKey(0) #当值为0时刷新时间间隔为0
cv2.imshow('image', image2)#第一个为显示的图片名字,第二个为图片
cv2.waitKey(0)
# 保存图片,此次保存灰度模式的佩奇
cv2.imwrite('huidupeiqi.png',image2)#第一个参数为文件名,第二个为要保存的图像。
pass
# PIL 的简单使用
def test_PIL():
"""
PIL的三大功能
1.图像归档(Image Archives)。
PIL非常适合于图像归档以及图像的批处理任务。你可以使用PIL创建缩略图,转换图像格式,打印图像等等。
2.图像展示(Image Display)。
PIL较新的版本支持包括Tk PhotoImage,BitmapImage还有Windows DIB等接口。PIL支持众多的GUI框架接口,可以用于图像展示。
3.图像处理(Image Processing)。
PIL包括了基础的图像处理函数,包括对点的处理,使用众多的卷积核(convolution kernels)做过滤(filter),还有颜色空间的转换。
PIL库同样支持图像的大小转换,图像旋转,以及任意的仿射变换。
PIL还有一些直方图的方法,允许你展示图像的一些统计特性。这个可以用来实现图像的自动对比度增强,还有全局的统计分析等。
"""
# 引入
# import PIL
from PIL import Image
# 图像的读写操作
image1 = Image.open("peiqi1.png","r")
print(image1)
print(image1.size,image1.mode)
# 保存图像
# image1.save("peiqi1.png",'png')
# 创建指定大小的缩略图,50*50
image1.thumbnail((50,50),resample=Image.BICUBIC)
# image1.show()
image1.save("littlepeiqi.png",'png')
# 图像裁剪,
# 左上角x,y坐标,右下角的x,y坐标,规定图像的最左上角的坐标为原点(0,0),宽度的方向为x轴,高度的方向为y轴,
# 每一个像素代表一个坐标单位
box = (10,10,20,20)
region = image1.crop(box)
region.show()
region.save("boxpeiqi.png", 'png')
pass
# scikit——image的简单使用
def test_matplotlib():
# 引入
import matplotlib.pyplot as plt
import numpy as np
# 绘画简单的图形
# 从[-1,1]中等距去50个数作为x的取值
x = np.linspace(-1, 1, 50) #前两个为x的取值范围,后一个为取值个数,等距取值
# 设置函数样式
y1 = 2 * x + 1
y2 = 2 ** x + 1
# 第一个是横坐标的值x,第二个是纵坐标的值y
plt.plot(x, y1)
plt.plot(x, y2)
"""
还可以设置多个线...
"""
# 设置label标签/名称,带汉字会警告
plt.xlabel("x")
plt.ylabel("y")
# 必要方法,用于将设置好的figure对象显示出来
plt.show()
pass
if __name__ == '__main__':
# 测试openCV
# test_openCV()
# test_PIL()
test_matplotlib()
pass