用于图像处理的Python顶级库 !!

这篇具有很好参考价值的文章主要介绍了用于图像处理的Python顶级库 !!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文章目录

前言

1、OpenCV

2、Scikit-Image

3、Scipy

4、Python Image Library(Pillow / PIL)

5、Matplotlib

6、SimpleITK

7、Numpy

8、Pandas

9、Seaborn

10、Mahotas


前言

正如IDC所指出的,数字信息将飙升至175ZB,而这些信息中的巨大一部分是图片。数据科学家需要(预先)测量这些图像,然后再将它们放入人工智能和深度学习模型中。在愉快的部分开始之前,他们需要做重要的工作。

为了快速地处理大量信息,科学家需要利用图像准备工具来完成人工智能和深度学习任务。

在本文中,将深入研究Python中最有用的图像处理库,这些库正在人工智能和深度学习任务中得到大力利用。

用于图像处理的Python顶级库 !!,Python,图像处理,python,人工智能,深度学习


1、OpenCV

OpenCV是最著名和应用最广泛的开源库之一,用于图像处理、目标检测、图像分割、人脸识别等计算机视觉任务。除此之外,它还可以用于机器学习任务。

这是英特尔在2022年开发的。它是用C++编写的,但是开发人员已经提供了Python和java绑定。它易于阅读和使用。

为了建立计算机视觉和机器学习模型,OpenCV有超过2500种算法。这些算法对于执行各种任务非常有用,例如人脸识别、目标检测等。让我们看一些可以使用OpenCV执行的示例:

用于图像处理的Python顶级库 !!,Python,图像处理,python,人工智能,深度学习

(1)灰度缩放

灰度缩放是一种将3通道图像(如RGB、HSV等)转换为单通道图像(即灰度)的方法。最终的图像在全白和全黑之间变化。灰度缩放的重要性包括降维(将3通道图像转换为单通道图像)、降低模型复杂度等。

下面的代码片段展示了OpenCV中的灰度缩放:

import cv2 as cv
img = cv.imread('example.jpg')
cv.imshow('Original', img)
cv.waitKey()
#Use cvtColor, to convert to grayscale
gray_img = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
cv.imshow('Grayscale', gray_img)
cv.waitKey(0)

用于图像处理的Python顶级库 !!,Python,图像处理,python,人工智能,深度学习

(2)旋转图像

OpenCV有助于使用从0到360度的任意角度旋转图像。

检查以下代码将图像旋转180度:

import matplotlib.pyplot as plt
img = cv.imread('example.jpg')
h, w = image.shape[:2]
rot_matrix = cv.getRotationMatrix2D((w/2,h/2), -180, 0.5)
rot_image = cv.warpAffine(img, rot_matrix, (w, h))
plt.imshow(cv.cvtColor(rot_image, cv.COLOR_BGR2RGB))

用于图像处理的Python顶级库 !!,Python,图像处理,python,人工智能,深度学习

OpenCV还提供了除我们到目前为止讨论的功能之外的其他功能。除此之外,它还有助于人脸检测、图像分割、特征提取、目标检测和三维重建等。

有关更多信息,请查看官方文档:https://opencv.org/

2、Scikit-Image

Scikit-Image 是另一个伟大的开源图像处理库。它几乎适用于任何计算机视觉任务。它是最简单、最直接的库之一。这个库的某些部分是有Cython编写的(它是Python编程语言的超集,旨在使python比C语言要快)。

它提供了大量的算法,包括分割、颜色空间操作、几何变换、滤波、形态学、特征检测等。

Scikit-Image使用Numpy数组作为图像对象。让我们看看如何在scikit图像中执行活动轮廓操作。活动轮廓描述图像中形状的边界。

用于图像处理的Python顶级库 !!,Python,图像处理,python,人工智能,深度学习

查看以下活动轮廓操作代码:

import numpy as np
import matplotlib.pyplot as plt
from skimage.color import rgb2gray
from skimage import data
from skimage.filters import gaussian
from skimage.segmentation import active_contour
image = data.astronaut()
# Data for circular boundary
s = np.linspace(0, 2*np.pi, 400)
x = 220 + 100*np.cos(s)
y = 100 + 100*np.sin(s)
init = np.array([x, y]).T
# formation of the active contour
centre = active_contour(gaussian(image, 3),init, alpha=0.015, beta=10, gamma=0.001)
figure, axis = plt.subplots(1, 2, figsize=(7, 7))
ax[0].imshow(image, cmap=plt.cm.gray)
ax[0].set_title("Original Image")
ax[1].imshow(image, cmap=plt.cm.gray)

用于图像处理的Python顶级库 !!,Python,图像处理,python,人工智能,深度学习

有关更多信息,请查看官方文档:https://scikit-image.org/docs/stable/auto_examples/

3、Scipy

Scipy 主要用于数据和科学计算,但有时也可以使用子模块Scipy.ndimage用于基本的图像操作和处理任务。

归根结底,图像只是多维数组,Scipy提供了一组用于操作n维Numpy操作的函数。Scipy提供了一些基本的图像处理操作,如人脸检测、卷积、图像分割、读取图像、特征提取等。

除此之外,还可以执行过滤,在图像上绘制轮廓线。

用于图像处理的Python顶级库 !!,Python,图像处理,python,人工智能,深度学习

请查看以下代码使用Scipy模糊图像:

from scipy import ndimage, misc
from matplotlib import pyplot as plt
f = misc.face()
b_face = ndimage.gaussian_filter(f, sigma=3)
figure, axis = plt.subplots(1, 2, figsize=(16, 8))

用于图像处理的Python顶级库 !!,Python,图像处理,python,人工智能,深度学习

有关更多信息,请查看官方文档:https://docs.scipy.org/doc/scipy/reference/ndimage.html

4、Python Image Library(Pillow / PIL)

它是一个用于图像处理任务的开放源码python库。它提供了其他库通常不提供的特殊功能,如过滤、打开操作和保存图像。这个库支持多种文件格式,这使它更高效。PIL还支持图像处理、图像显示和图像存档等功能。让我们看看使用Pillow / PIL的图像增强。

用于图像处理的Python顶级库 !!,Python,图像处理,python,人工智能,深度学习

更改图像的清晰度:

用于图像处理的Python顶级库 !!,Python,图像处理,python,人工智能,深度学习

有关更多信息,请查看官方文档:https://pillow.readthedocs.io/en/stable/index.html

5、Matplotlib

Matplotlib 主要用于二维可视化,如散点图、条形图、直方图等,但我们也可以将其用于图像处理。从图像中提取信息是有效的。它不支持所有的文件格式。

用于图像处理的Python顶级库 !!,Python,图像处理,python,人工智能,深度学习

背景颜色更改操作后,请查看以下图像:

用于图像处理的Python顶级库 !!,Python,图像处理,python,人工智能,深度学习

使用Matplotlib绘制多曲线图:

# plot_multi_curve.py
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0.1, 2 * np.pi, 100)
y_1 = x
y_2 = np.square(x)
y_3 = np.log(x)
y_4 = np.sin(x)
plt.plot(x,y_1)
plt.plot(x,y_2)
plt.plot(x,y_3)
plt.plot(x,y_4)
plt.show()

用于图像处理的Python顶级库 !!,Python,图像处理,python,人工智能,深度学习

有关更多信息,请查看官方文档:https://matplotlib.org/stable/tutorials/introductory/images.html

6、SimpleITK

它也称为图像分割和注册工具包。它是一个用于图像注册和图像分割的开源库。像OpenCV这样的库将图像视为一个数组,但是这个库将图像视为空间中某个区域上的一组点。

用于图像处理的Python顶级库 !!,Python,图像处理,python,人工智能,深度学习

有关更多信息,请查看官方文档:https://itk.org/

7、Numpy

它是一个用于数值分析的开放源码python库。它包含一个矩阵和多维数组作为数据结构。但是NumPy也可以用于图像处理任务,例如图像裁剪、操作像素和像素值的蒙版。

用于图像处理的Python顶级库 !!,Python,图像处理,python,人工智能,深度学习

检查下图以从图像中提取绿色/红色/蓝色通道:

用于图像处理的Python顶级库 !!,Python,图像处理,python,人工智能,深度学习

我们可以在示例中对比下纯Python与使用Numpy库在计算列表sin值的速度对比:

import numpy as np
import math
import random
import time

start = time.time()
for i in range(10):
    list_1 = list(range(1,10000))
    for j in range(len(list_1)):
        list_1[j] = math.sin(list_1[j])
print("使用纯Python用时{}s".format(time.time()-start))

start = time.time()
for i in range(10):
    list_1 = np.array(np.arange(1,10000))
    list_1 = np.sin(list_1)
print("使用Numpy用时{}s".format(time.time()-start))

从如下运行结果,可以看到使用Numpy库的速度快于纯 Python 编写的代码:

  • 使用纯Python用时0.017444372177124023s
  • 使用Numpy用时0.001619577407836914s

有关更多信息,请查看官方文档:http://:https://scikit-image.org/docs/dev/user_guide/numpy_images.html

8、Pandas

Pandas 是一个快速、强大、灵活且易于使用的开源数据分析和操作工具,Pandas可以从各种文件格式比如 CSV、JSON、SQL、Microsoft Excel 导入数据,可以对各种数据进行运算操作,比如归并、再成形、选择,还有数据清洗和数据加工特征。Pandsa 广泛应用在学术、金融、统计学等各个数据分析领域。

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

ts = pd.Series(np.random.randn(1000), index=pd.date_range("1/1/2000", periods=1000))
ts = ts.cumsum()

df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list("ABCD"))
df = df.cumsum()
df.plot()
plt.show()

用于图像处理的Python顶级库 !!,Python,图像处理,python,人工智能,深度学习

9、Seaborn

Seaborn 是在Matplotlib是基础上进行了更高级的API封装的Python数据可视化库,从而使得作图更加容易,应该把 Seaborn 视为 Matplotlib 的补充,而不是替代物。

import seaborn as sns
import matplotlib.pyplot as plt
sns.set_theme(style="ticks")

df = sns.load_dataset("penguins")
sns.pairplot(df, hue="species")
plt.show()

用于图像处理的Python顶级库 !!,Python,图像处理,python,人工智能,深度学习

10、Mahotas

它是另一个用于计算机视觉和图像处理的开放源码python库。它是为生物信息学而设计的。它提供了很多算法,这些算法是用C++编写的,速度很快,使用了一个好的Python接口。它以NumPy数组读取和写入图像。

使用Mahotas检查下面的模板匹配图像:

用于图像处理的Python顶级库 !!,Python,图像处理,python,人工智能,深度学习

使用Mathotas加载图像,并对像素进行操作:

import numpy as np
import mahotas
import mahotas.demos

from mahotas.thresholding import soft_threshold
from matplotlib import pyplot as plt
from os import path
f = mahotas.demos.load('lena', as_grey=True)
f = f[128:,128:]
plt.gray()
# Show the data:
print("Fraction of zeros in original image: {0}".format(np.mean(f==0)))
plt.imshow(f)
plt.show()

用于图像处理的Python顶级库 !!,Python,图像处理,python,人工智能,深度学习

参考:小白学视觉文章来源地址https://www.toymoban.com/news/detail-833344.html

到了这里,关于用于图像处理的Python顶级库 !!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 彩色图像处理之彩色图像直方图处理的python实现——数字图像处理

    彩色图像处理之彩色图像直方图处理的python实现——数字图像处理

    彩色图像的直方图处理是一种重要的图像处理技术,用于改善图像的视觉效果,增强图像的对比度,或为后续的图像处理任务(如图像分割、特征提取)做准备。彩色图像通常由红色(R)、绿色(G)、蓝色(B)三个颜色通道组成,因此彩色图像的直方图处理相比单色图像更

    2024年01月23日
    浏览(12)
  • Python 使用多种方法对图像进行锐化处理——图像处理

    Python 使用多种方法对图像进行锐化处理——图像处理

    fun_01() fun_02() fun_03()      

    2024年02月13日
    浏览(51)
  • 【图像处理】使用 Python 进行图像增强

            图像增强技术的深度和复杂性往往在一系列捕获和共享中被忽视。从傅里叶变换到白平衡和直方图处理,各种方法都可以将普通照片转换为引人注目的图像。这篇博文旨在解开这些技术。         我在节日期间拍了一张照片,在夜间庆祝活动中。遗憾的是,图

    2024年02月16日
    浏览(83)
  • python图像处理实战(一)—图像基础

    python图像处理实战(一)—图像基础

    🚀写在前面🚀 🖊个人主页:https://blog.csdn.net/m0_52051577?type=blog  🎁欢迎各位大佬支持点赞收藏,三连必回!! 🔈本人新开系列专栏—python图像处理 ❀愿每一个骤雨初晴之时,所有的蜻蜓振翅和雨后惊雷,都归你。 目录 一、前言 二、认识图像  三、用到的库  (1)Numpy

    2024年02月09日
    浏览(8)
  • python数字图像处理基础(四)——图像平滑处理、形态学操作、图像梯度

    python数字图像处理基础(四)——图像平滑处理、形态学操作、图像梯度

    让有噪音点(图像上显得突兀的像素点)的图像变得更加自然顺眼 1.均值滤波 blur() 根据核的大小(rowcol),每个像素值就等于以此像素为中心的周围rowcol个像素的平均值。 核大一点,显然越平滑、模糊。 result = cv2.blur(img, (15, 15)) 2.方框滤波 boxFilter() normalize=true的时候,效果同

    2024年01月18日
    浏览(35)
  • 《数字图像处理-OpenCV/Python》连载:形态学图像处理

    《数字图像处理-OpenCV/Python》连载:形态学图像处理

    本书京东 优惠购书链接 https://item.jd.com/14098452.html 本书CSDN 独家连载专栏 https://blog.csdn.net/youcans/category_12418787.html 形态学图像处理是基于形状的图像处理,基本思想是利用各种形状的结构元进行形态学运算,从图像中提取表达和描绘区域形状的结构信息。形态学运算的数学原

    2024年02月19日
    浏览(52)
  • python --opencv图像处理(图像腐蚀与图像膨胀)

    python --opencv图像处理(图像腐蚀与图像膨胀)

    图像的腐蚀( Erosion )和膨胀( Dilation )是两种基本的形态学运算,主要用来寻找图像中的极大区域和极小区域。 又出来新名词了:形态学。 图像处理中指的形态学,往往表示的是数学形态学。数学形态学( Mathematical morphology ) 是一门建立在格论和拓扑学基础之上的图像

    2024年02月08日
    浏览(15)
  • python图像处理实战(二)—图像几何变换

    python图像处理实战(二)—图像几何变换

    🚀写在前面🚀 🖊个人主页:https://blog.csdn.net/m0_52051577?type=blog  🎁欢迎各位大佬支持点赞收藏,三连必回!! 🔈本人新开系列专栏—python图像处理 ❀愿每一个骤雨初晴之时,所有的蜻蜓振翅和雨后惊雷,都归你。 前言       图像几何变换就是在不改变图像像素值的前提

    2024年02月09日
    浏览(32)
  • python图像处理实战(三)—图像几何变换

    python图像处理实战(三)—图像几何变换

    🚀写在前面🚀 🖊个人主页:https://blog.csdn.net/m0_52051577?type=blog  🎁欢迎各位大佬支持点赞收藏,三连必回!! 🔈本人新开系列专栏—python图像处理 ❀愿每一个骤雨初晴之时,所有的蜻蜓振翅和雨后惊雷,都归你。 前言       图像几何变换就是在不改变图像像素值的前提

    2024年02月11日
    浏览(12)
  • python图像处理(旋转)

    python图像处理(旋转)

    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         除了图像镜像之外,另外一个经常遇到的、差不多的功能就是图像旋转。旋转分成顺时针旋转和逆时针旋转两种情况。但是对于isp来说,一般旋转的角度都是提前设置好的,比如只支

    2024年02月12日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包