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

server/2024/9/22 21:20:53/

8个常用的Python图像操作库

文章目录

  • 8个常用的Python图像操作库
    • 1、OpenCV
    • 2、Pillow(PIL)
    • 3、Scikit Image
    • 4、Numpy
    • 5、SciPy
    • 6、Mahotas
    • 7、SimpleITK
    • 8、Matplotlib

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

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

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

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

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

1、OpenCV

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

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

1)安装

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

pip install opencv-python

2)使用示例

python"># 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)示例

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

python">from PIL import Imagewith Image.open("tesla.png") as im:#show the original imageim.show("Original Image")#convert into grayscalegrayscaleImg = im.convert("L")#show the grayscale imagegrayscaleImg.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)示例

python">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)示例

python">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)示例

python">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)示例

python">import SimpleITK as sitk
import matplotlib.pyplot as pltlogo = 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)示例

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

输出结果:

在这里插入图片描述


http://www.ppmy.cn/server/104130.html

相关文章

选择排序(直接选择排序和堆排序)

一、直接选择排序 1.基本思想 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 2.动图展示 3.思路讲解 ①在元素集合array[i]—array[n-1]中选择关键码最大&…

Jakarta Servlet 到 SpringMVC

Jakarta EE(曾被称为Java EE)是Java平台企业版(Java Platform Enterprise Edition)的下一代版本,它在Oracle将Java EE的开发和维护交给Eclipse Foundation后得以重生,并更名为Jakarta EE。Jakarta EE保留了…

算法的学习笔记—树的子结构(牛客JZ26)

😀前言 在算法面试中,二叉树相关的问题经常出现,其中一个经典的问题是判断一棵二叉树B是否是另一棵二叉树A的子结构。本文将深入探讨这个问题,并通过代码示例展示如何解决这一问题。 🏠个人主页:尘觉主页 文…

解决图片导入Excel后变成横向问题

最近有同事遇到图片打开的时候是竖向的,导入Excel后就变成横向了 我在网上搜了一下,没找到直接的答案 我猜大概是用了某些软件做处理(例如压缩分辨率)但是没处理干净 后来经过多次尝试,发现只要用windows自带的画图软件…

超容易出成果的方向:多模态医学图像处理!

哈喽朋友们,今天给大家推荐一个比较容易出成果的方向:多模态医学图像处理。 众所周知,多模态如今火的一塌糊涂,早就成了很多应用科学与AI结合的重要赛道,特别是在医学图像处理领域。 由此提出的多模态医学图像处理融合…

换代危机,极氪不得不闯的一关

文|刘俊宏 编|王一粟 “今年,不容我们有任何犯错的机会,如果犯错,一定会全盘皆输。” 面临智能化愈发重要的汽车市场,极氪智能科技CEO安聪慧曾在今年初提醒着极氪汽车(下简称极氪&#xff09…

开发团队学会应对突发的技术故障和危机

文章目录 一、前言二、应对方法2.1 建立应急响应计划2.2 实时监控与预警2.3 快速定位问题2.4 沟通和协调2.5 调整资源2.6 快速评估影响2.7 利用风险管理工具2.8 备份与恢复策略2.9 客户沟通2.10 事后总结与改进2.11 总结和反思 三、总结 一、前言 8月19日下午,网易…

【前端面试】call、apply 、bind、箭头函数

函数除了传参,还有一个调用上下文this,使用call、apply 、bind可以改变函数的this 在实际开发中,选择使用 call、apply 还是 bind 取决于你的具体需求和场景。以下是一些使用这些函数的常见情况: 1. 使用 call 的情况: 当你需要调用一个函数,并且需要明确指定 this 的上下…