暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

程序员学长 2022-12-13
237

大家好,我是小寒。

今天来分享一些主要用于图像处理的 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。

       ​


最后



今天的分享就到这里。如果觉得不错,点赞,转发安排起来吧。
接下来我们会分享更多的 「深度学习案例以及python相关的技术」,欢迎大家关注。
最后,最近新建了一个 python 学习交流群,会经常分享 「python相关学习资料,也可以问问题,非常棒的一个群」

「进群方式:加我微信,备注 “python”」



往期回顾


Fashion-MNIST 服装图片分类-Pytorch实现

python 探索性数据分析(EDA)案例分享

深度学习案例分享 | 房价预测 - PyTorch 实现

万字长文 |  面试高频算法题之动态规划系列

面试高频算法题之回溯算法(全文六千字)  

    




如果对本文有疑问可以加作者微信直接交流。进技术交流群的可以拉你进群。

文章转载自程序员学长,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论