# 查找资料,结合实例代码,至少比较三种Python图形处理库或图像处理库的异同点 """ 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