这些 python 图像处理库,你用过几个?

760 阅读4分钟

原文链接

大家好,我是小寒。

今天来分享一些主要用于图像处理的 Python 库。 如果觉得不错,记得点赞、转发起来。

1. OpenCV

OpenCV 是一个流行的 Python 数据可视化库。它是一个开源库,可用于各种编程语言,包括 C++、Java 以及汇编语言。

该库由 Intel 使用 C++ 编程语言 开发,专为实时计算机视觉而设计。

安装

由于 OpenCV 是第三方库,我们可以使用 Python pip 包管理器工具为我们的 Python 环境安装它。

pip install opencv-python
案例
import cv2
 
# 读取图像
image = cv2.imread('tesla.png')
# 对图像进行灰度处理
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

cv2.imshow('Original Image', image)
cv2.imshow('Grayscale Image', gray_image)

cv2.waitKey(0)
cv2.destroyAllWindows()
输出

2. Pillow (PIL)

Pillow 是另一个流行的 Python 图像处理库。它是每个初学者入门的最基本的图像处理库。它也被称为 PIL,代表 Python 图像库。

如果将 PIL 与 OpenCV 进行比较,PIL 是一个轻量级的库,功能较少,对于刚刚进入图像处理领域的 Python 开发新手来说,可以轻松学习和掌握。

安装

PIL 也是一个第三方开源库,可以使用pip install命令安装。

案例

使用 Pillow 在 Python 中对图像进行灰度化。

from PIL import Image
 
with Image.open("tesla.png") as im:
    #显示原始图像
    im.show("Original Image")
 
    #转化为灰度图像
    grayscaleImg = im.convert("L")
 
    #显示灰度图像
    grayscaleImg.show()
输出

3. Scikit Image

Scikit Images 是一个具有科学倾向的 Python 图像处理库。

它旨在使用 Numpy 和 Scipy 库处理图像。

它包括各种科学算法,例如分割、颜色空间操作、分析、形态学等。

该库是使用 Python 和 C 编程语言编写的。

它适用于所有流行的操作系统,例如 Linux、macOS 和 Windows。

安装

scikit-image 是一个开源库,我们可以使用 pip install 命令安装它。

pip install scikit-image
例子

使用 scikit-image 库对图像进行灰度化

from skimage import io
from skimage.color import rgb2gray
 
 
# way to load car image from file
car = io.imread('tesla.png')[:,:,:3]
 
#convert into grayscale
grayscale = rgb2gray(car)
 
#show the original
io.imshow(car)
io.show()
 
#show the grayscale
io.imshow(grayscale)
io.show()
输出

4. NumPy

NumPy 是最基本的 Python 科学计算库。

它以在 Python 中引入多维数组或矩阵而闻名。它是一个专门的科学计算库。此外,它还具有广泛的数学特性,如数组、线性代数、基本统计运算、随机模拟、逻辑排序、搜索、形状操作等。

安装

我们可以使用 pip install 命令 安装 numpy.

pip install numpy
例子

使用 numpy 对图像进行灰度化.

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
 
#load the original image
img_rgb = mpimg.imread('tesla.png')[...,:3]
 
#show the original image
plt.imshow(img_rgb)
plt.show()
 
#convert the image into grayscale
img_gray = np.dot(img_rgb,[0.299, 0.587, 0.144])
 
#show the grayscale image
plt.imshow(img_gray, cmap=plt.get_cmap('gray'))
plt.show()
输出

5. SciPy

与 Numpy 类似,SciPy 也是一个科学计算库。

它具有比 Numpy 更多的功能,因为它是作为 NumPy 库的扩展构建的。

Scipy 为数据操作和数据可视化提供高级和复杂的命令和类。它涵盖了广泛的数据处理工具。此外,它还支持并行编程、从 Web 访问数据、数据驱动的子程序和其他数学特性。

安装

要安装 SciPy 库,我们可以借助 Python 包管理器 pip。

pip install scipy
例子

使用 scipy 转换灰度图像

from scipy import misc,ndimage
from matplotlib import pyplot as plt
import numpy as np
img=misc.face()
 
#show original image
plt.imshow(img)
plt.show()
 
#grayscale using gaussian blur filter
grayscale=ndimage.gaussian_filter(img,sigma=2)
 
#show grayscale image
plt.imshow(grayscale)
plt.show()
输出

6. Mahotas

Mahotas 是另一个可以执行各种图像处理操作的 Python 计算机视觉库。它是用C++设计的,它包含许多提高图像处理速度的算法。

安装

Mahotas 是一个开源库,可以使用以下终端命令进行安装。

pip install mahotas
例子

使用 Mahotas 将 RGB 图像转换为灰度图像

import mahotas
from pylab import imshow, show
 
#read the image
img = mahotas.imread('tesla.png')
 
#show original image
imshow(img)
show()
 
img = img[:, :, 0]  
grayscale = mahotas.overlay(img)
 
#show grayscale image
imshow(grayscale)
show()
输出

7. SimpleITK

SimpleITK 是一个强大的图像工具包。它是作为 ITK 工具包 的扩展构建的,用于提供简化的界面。它支持不同的编程语言,例如 Python、R、C++、Java、C#、Ruby、TCL 和 Lua。

该库支持 2D、3D 和 4D 图像。与其他 Python 图像处理库和框架相比,该库的图像处理速度非常快。

安装
pip install SimpleITK
例子

使用 SimpleITK 加载和显示图像

import SimpleITK as sitk
import matplotlib.pyplot as plt
 
logo = sitk.ReadImage('tesla.png')

# GetArrayViewFromImage returns an immutable numpy array view to the data.
plt.imshow(sitk.GetArrayViewFromImage(logo))
plt.show()
输出

8.Matplotlib

Matplotlib 也可以用作图像处理库,尽管它是一个数据可视化库。

一般用于绘制numpy数组数据,但也可以读取NumPy数组表示的图像数据。

安装
pip install matplotlib
例子
# importing libraries.
import matplotlib.pyplot as plt
from PIL import Image
 
# open image using pillow library
image = Image.open("tesla.png")
#show original image
plt.imshow(image)
plt.show()
 
# grayscale the image
plt.imshow(image.convert("L"), cmap='gray')
plt.show()
输出

结论

在这八个库中,使用最多的 Python 图像操作或处理库是 Pillow 和 OpenCV。