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()

输出

更新于:2019年7月30日

12K+ 次浏览

启动你的职业生涯

完成课程获得认证

开始
广告