Python图像处理?
Python提供了许多用于图像处理的库,包括:
OpenCV − 主要关注实时计算机视觉的图像处理库,应用领域广泛,例如二维和三维特征工具包、人脸和姿态识别、人机交互、移动机器人、物体识别等。
Numpy和Scipy库 − 用于图像操作和处理。
Scikit-learn − 提供许多图像处理算法。
Python图像库 (PIL) − 用于执行图像的基本操作,例如创建缩略图、调整大小、旋转、在不同文件格式之间转换等。
在本节中,我们将了解Python图像处理的一些基础知识。
安装所需的库
我们的第一步是安装所需的库,例如OpenCV、Pillow或其他我们想要用于图像处理的库。我们可以使用pip安装所需的库,例如:
$pip install pillow
就是这样:现在我们可以处理我们的图像了。
图像:Open() 和 show()
首先,打开文件/图像并显示。你可以像下面这样在显示时旋转图像:
#Import required library from PIL import Image #Open Image im = Image.open("TajMahal.jpg") #Image rotate & show im.rotate(45).show()
Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.
输出
如上所示变量im是一个Pillow对象。我们可以检索有关已打开图像的一些信息:
>>> im <PIL.JpegImagePlugin.JpegImageFile image mode = RGB size = 1000x667 at 0x65AB990< >>> im.size (1000, 667) >>> im.format 'JPEG' >>>
转换和保存图像
我们可以将图像格式从一种格式更改为另一种格式,如下所示:
>>> im.save('TajMahal.png')
现在,如果我们查看文件夹,我们会有两种不同格式的相同图像。
调整大小 - 缩略图()
我们可以使用Pillow的thumbnail()方法更改图像大小:
>>> im.thumbnail ((300, 300)) >>> im.show()
图像将如下更改
转换为灰度图像 - convert()
我们可以从原始彩色图像制作灰度图像。
>>> TajMahal_gray = Image.open('TajMahal.jpg').convert('L') >>> TajMahal_gray.show()
其中“L”代表“明亮度”。
以上示例来自Python的PIL库。我们可以使用其他库,如OpenCV、Matplotlib和Numpy进行图像处理。下面是一些示例程序,用于演示使用更强大的图像处理库。
显示灰度图像
#Import required library import cv2 import numpy as np from matplotlib import pyplot as plt im = cv2.imread('TajMahal.jpg',cv2.IMREAD_GRAYSCALE) cv2.imshow('image',im) cv2.waitKey(0) cv2.destroyAllWindows()
输出
另一种方法是用一个标记/线来标记图像的程序。
import cv2 import numpy as np from matplotlib import pyplot as plt im = cv2.imread('TajMahal.jpg',cv2.IMREAD_GRAYSCALE) plt.imshow(im, cmap = 'gray', interpolation = 'bicubic') # to hide tick values on X and Y axis plt.xticks([]), plt.yticks([]) plt.plot([200,300,400],[100,200,300],'c', linewidth = 5) plt.show()