【杂谈】-8个常用的Python图像操作库

发布于:2024-08-18 ⋅ 阅读:(160) ⋅ 点赞:(0)

8个常用的Python图像操作库


在当今世界,数据在每个行业垂直领域中都发挥着至关重要的作用。图像可以是提取数据的来源之一。图像可以定义为像素矩阵,每个像素代表一种颜色,这种颜色可以被视为一个数据值。

图像处理有助于揭示任何图像中的底层数据。它帮助您从图像中提取、操作和过滤数据。图像处理的主要目标是从图像中发现一些有价值的信息。

图像处理有各种应用,如图像锐化、图像恢复、模式识别、视频处理等。大多数图像处理应用都属于数据分析和数据科学领域。

说到数据分析,我们脑海中浮现的唯一语言就是Python。它也是最常用于图像处理的语言,因为它拥有广泛的库集,这使得开发人员能够使用简单的代码行执行复杂操作。

让我们来看一些主要用于图像处理的Python库。

1、OpenCV

OpenCV(开源计算机视觉库)是一个流行的Python数据可视化库。它是一个开源库,适用于多种编程语言,包括C++、Java以及汇编语言。

这个库是由英特尔使用C++编程语言开发的,旨在用于实时计算机视觉。它非常适合执行计算密集型的计算机视觉程序。

1)安装

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

pip install opencv-python

2)使用示例

# import opencv
import cv2
 
# Read the image
image = cv2.imread('tesla.png')
# grayscale the image
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 Imaging Library(Python成像库)。

PIL库附带了不同的文件格式化扩展名,这些扩展名提供了强大而复杂的功能来执行图像处理。如果我们将PIL与OpenCV进行比较,PIL是一个轻量级库,功能较少,使得它对刚刚进入图像处理领域的新Python开发者来说易于学习和操作。

1)安装

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

pip install pillow 

2)示例

下面将图像转换为灰度图像:

from PIL import Image
 
with Image.open("tesla.png") as im:
    #show the original image
    im.show("Original Image")
 
    #convert into grayscale
    grayscaleImg = im.convert("L")
 
    #show the grayscale image
    grayscaleImg.show()

输出结果如下:

在这里插入图片描述

3、Scikit Image

Scikit Images是一个科学倾向的Python图像处理库。它旨在使用Numpy和Scipy库处理图像。它包括各种科学算法,如分割、颜色空间操作、分析、形态学等。这个库是用Python和C编程语言编写的。它适用于所有流行的操作系统,如Linux、macOS和Windows。

1)安装

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

pip install scikit-image

2)示例

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中引入多维数组或矩阵而闻名。它是一个专门的科学计算库。此外,它还具有广泛的数学功能,如数组、线性代数、基本统计操作、随机模拟、逻辑排序、搜索、形状操作等。

1)安装

同样,要安装NumPy,我们可以使用pip install命令。

pip install numpy

2)示例

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为数据操作和数据可视化提供了高级和复杂的命令和类。它涵盖了广泛的数据处理工具。此外,它还支持并行编程、从网络获取数据、数据驱动的子程序以及其他数学功能。

1)安装

要安装SciPy库,我们可以借助Python包管理器命令行工具pip。

pip install scipy

2)示例

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++设计的,包括许多算法来提高图像处理速度。此外,它使用NumPy数组将图像表示为矩阵。Watershed、凸点计算、命中与未命中卷积以及Sobel边缘是该库中的主要功能。

1)安装

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

pip install mahotas

2)示例

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图像处理库和框架相比,该库的图像处理速度非常快。

1)安装

pip install SimpleITK

2)示例

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数组表示的图像数据。在上面的库中,我们已经使用过Matplotlib库来显示和绘制图像。

1)安装

pip install matplotlib

2)示例

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

输出结果:

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到