5个用于图像处理的Python库

2023-11-07

图像处理是操纵图像以从中提取特征的现象。

在当今计算机视觉和深度学习的世界中,大量使用不同的图像处理算法对图像数据集进行边缘检测、识别和分类。

有时,这些算法也会逐帧应用于视频,以从中提取特征。

在今天的文章中,我们将介绍5个最好的Python库,它们可能会帮助你执行图像处理,如裁剪、缩放等。


1.OpenCV

OpenCV是用于图像处理和计算机视觉的最流行和最广泛使用的库之一。这个口头库可以与许多编程语言一起使用,如C、C++、Python、java,但是Python绑定库是最流行的。

不仅图像处理,而且与计算机视觉相关的复杂深度学习算法也可以使用该库轻松实现。OpenCV最好的一点是它是跨平台的,并且可以与移动设备一起工作。

安装
pip install opencv-python

对图像进行高斯模糊。我们将使用Colab,因为在那里我们不需要设置东西的环境-这里的一切都是预先设置的。

首先,让我们导入必要的包。Colab不支持cv2.imshow-但是,我们有一个替代方案。

import cv2

import numpy as np

import urllib

import urllib.request as ur

from google.colab.patches import cv2_imshow

现在,让我们从internet加载一个图像并应用一些过滤器。

resp = ur.urlopen("https://thumbor.forbes.com/thumbor/960x0/https%3A%2F%2Fspecials-images.forbesimg.com%2Fdam%2Fimageserve%2F1068867780%2F960x0.jpg%3Ffit%3Dscale")

image = np.asarray(bytearray(resp.read()), dtype="uint8")

im = cv2.imdecode(image, cv2.IMREAD_COLOR)

blur = cv2.GaussianBlur(im, (5,5),0)

cv2_imshow(blur)

fe5cb22dd05be4975ba7c9d22abdbb83.png


2.SimpleCV

SimpleCV是一个python框架,它使用像OpenCV这样的计算机视觉库。这个库非常简单易用,对快速原型设计非常有帮助。

对于那些不了解不同图像处理概念(如特征值、颜色空间和位深度)的人来说,此库尤其有用。

安装
pip install SimpleCV

该库是处理对象检测任务的更好选择。比如使用这个库来检测一辆车是否停了。

你可以在这里了解更多关于这个库的信息。

http://tutorial.simplecv.org/en/latest/


3. Pillow

Pillow是一个Python图像处理库,源于PIL或Python图像库。

尽管它不如openCV功能强大、速度快,但它可以用于简单的图像处理工作,如裁剪、调整大小、旋转和灰度缩放图像。另一个好处是它可以在没有NumPy和Matplotlib的情况下使用。

安装
pip install pillow

要在PIL中读取图像,我们可以使用:

from PIL import Image

im = Image.open(r"C:\Users\System-Pc\Desktop\image1.jpg")

im.show()

你可以在这里了解更多关于这个库的信息。

https://pillow.readthedocs.io/en/stable/


4.Mahotas

Mahotas是一个用于图像处理和计算机视觉的Python库,最初是为生物图像信息学设计的。但是其他的计算机视觉任务也可以用它来完成。它最初是用C++编写的,它使它非常快,而且除了NUMPY之外没有依赖关系。

安装
pip install mahotas

使用mahotas对图像进行灰度缩放:

import mahotas

import mahotas.demos

import numpy as np

from pylab import imshow, gray, show

from os import path

photo = mahotas.demos.load('luispedro', as_grey=True)

photo = photo.astype(np.uint8)

gray()

imshow(photo)

show()

最后,在运行代码之后,我们可以得到以下结果。

18763a22eaf2eecf000673e57e0f9e8e.png


5.pgmagick

Pgmagick是GraphicsMagick的Python包装器,GraphicsMagick是用于处理图像的工具和库的集合。它支持88多种图像格式。除了图像处理工作外,它还可以用于web应用程序中创建新图像。

安装
pip install pgmagick
用于从图片中提取边:
from pgmagick.api import Image

img = Image(‘lena.jpg’) # 图像路径

img.edge(2)

img.write(‘lena_edge.jpg’)

结论

尽管OpenCV是我们将来将要使用的主要图像处理库,但是了解一下其他图像处理库肯定是个好主意。

所有这些库都可以简化特定功能的实现,从而简化工作流。

☆ END ☆

如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 woshicver」,每日朋友圈更新一篇高质量博文。

扫描二维码添加小编↓

4047f6e4939aaaa76fcc8956af0120b4.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

5个用于图像处理的Python库 的相关文章

  • 切片稀疏(scipy)矩阵

    我将不胜感激任何帮助 以理解从 scipy sparse 包中切片 lil matrix A 时的以下行为 实际上 我想根据行和列的任意索引列表提取子矩阵 当我使用这两行代码时 x1 A list 1 x2 x1 list 2 一切都很好
  • boto3 资源(例如 DynamoDB.Table)的类型注释

    The boto3库提供了几种返回资源的工厂方法 例如 dynamo boto3 resource dynamodb Table os environ DYNAMODB TABLE 我想注释这些资源 以便我可以获得更好的类型检查和完成 但我
  • for 循环如何评估其参数

    我的问题很简单 Does a for循环评估它每次使用的参数 Such as for i in range 300 python 是否会为此循环的每次迭代创建一个包含 300 个项目的列表 如果是的话 这是避免这种情况的方法吗 lst ra
  • Python从int到string的快速转换

    我正在用 python 求解大量阶乘 并发现当我完成计算阶乘时 需要相同的时间才能转换为字符串以保存到文件中 我试图找到一种将 int 转换为字符串的快速方法 我将举一个计算和 int 转换时间的例子 我正在使用通用的 a str a 但感
  • Jupyter Notebooks 不显示进度条

    我正在尝试在 Jupyter 笔记本中显示进度条 这是一台新电脑 我通常做的事情似乎不起作用 from tqdm import tqdm notebook example iter 1 2 3 4 5 for rec in tqdm not
  • 为什么我的代码不能根据字典解码加密字符串?

    我有一本字典 其中包含代表字母的键和值 例如一个简单的 DICT CODE b g n a p o x d t y 我收到了一个加密代码 并将该字符串转换为一个列表 其中每个项目都是一个单词 我需要根据字典中的项目来解决它 代码示例是 wo
  • 如何在 PyCharm 4.5.2 中使用 PyPy 作为标准/默认解释器?

    如何在 PyCharm 4 5 2 中使用 PyPy 作为标准 默认解释器 一切都在 Ubunutu 14 10 下运行 并且 pypy 已经安装 您可以在项目的设置下进行配置 这个官方文档直接涵盖了 https www jetbrains
  • numpy 使用 datetime64 进行数字化

    我似乎无法让 numpy digitize 与 datetime64 一起使用 date bins np array np datetime64 datetime datetime 2014 n 1 s for n in range 1 1
  • WindowsError:[错误 126] 使用 ctypes 加载操作系统时

    python代码无法在Windows 7平台上运行 def libSO lib ctypes cdll LoadLibrary ConsoleApplication2 so lib cfoo2 1 3 当我尝试运行它时 得到来自python
  • python 中的 Johansen 协整检验

    我找不到任何有关在处理统计和时间序列分析 pandas 和 statsmodel 的 Python 模块中执行 Johansen 协整检验的功能的参考 有谁知道是否有一些代码可以执行时间序列之间的协整测试 现在 这已在 Python 的 s
  • 使用 scipy curve_fit 拟合噪声指数的建议?

    我正在尝试拟合通常按以下方式建模的数据 def fit eq x a b c d e return a 1 np exp x b c np exp x d e x np arange 0 100 0 001 y fit eq x 1 1 1
  • Apache Spark 中的高效字符串匹配

    我使用 OCR 工具从屏幕截图中提取文本 每个大约 1 5 句话 然而 当手动验证提取的文本时 我注意到时不时会出现一些错误 鉴于文本 你好 我真的很喜欢 Spark 我注意到 1 像 I 和 l 这样的字母被 替换 2 表情符号未被正确提
  • PySide6.1 与 matplotlib 3.4 不兼容

    当我只安装PySide6时 GUI程序运行良好 但是一旦我安装了matplotlib及其依赖包 包括pyqt5 则GUI程序将无法运行并输出以下错误消息 This application failed to start because no
  • Python多处理错误“ForkAwareLocal”对象没有属性“连接”

    下面是我的代码 我面临着多处理问题 我看到这个问题之前已经被问过 我已经尝试过这些解决方案 但它似乎不起作用 有人可以帮我吗 from multiprocessing import Pool Manager Class X def init
  • 乘以行并按单元格值附加到数据框

    考虑以下数据框 df pd DataFrame X a b c d Y a b d e Z a b c d 1 2 1 3 df 我想在 列中附加数字大于 1 的行 并在该行中的数字减 1 df 最好应该 然后看起来像这样 或者它可能看起来
  • 解析根元素内元素之间的 XML 文本

    我正在尝试用 Python 解析 XML 以下是 XML 结构的示例 a aaaa1 b bbbb b aaaa2 a
  • Python]将两个文本文件合并为一个(逐行)[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我是蟒蛇新手 我想做的是将文件 a 和文件 b 逐行合并到一个文件中 例如 text file a a n b n c text fi
  • 在 virtualenvwrapper 中激活环境

    我安装了virtualenv and virtualenvwrapper用这个命令我创建了一个环境 mkvirtualenv cv 它有效 创建后我就处于新环境中 现在我重新启动了我的电脑 我想activate又是那个环境 但是怎么样 我使
  • 更改 Python Cmd 模块处理自动完成的方式

    我有一个 Cmd 控制台 设置为自动完成 Magic the Gathering 收藏管理系统的卡牌名称 它使用文本参数在数据库中查询卡片 并使用结果自动完成 建议卡片 然而 这些卡片名称有多个单词 Cmd 会从last到行尾的空间 例如
  • python sklearn中的fit方法

    我问自己关于 sklearn 中拟合方法的各种问题 问题1 当我这样做时 from sklearn decomposition import TruncatedSVD model TruncatedSVD svd 1 model fit X

随机推荐

  • VC++ 在任务栏图标上显示进度条效果

    该功能主要是通过COM接口ITaskbarList3 来实现进度效果显示功能 头文件定义 CSWTaskBarList h pragma once include
  • Android bundetool 详解

    android bundetool 详解 一 什么是 bundetool 为什么要使用 bundetool 在使用Android Studio 构建 Android App Bundle 后 需要测试 Android App Bundle
  • css设置背景图片大小_如何使用CSS设置背景图片大小?

    css设置背景图片大小 Introduction 介绍 As we all know that the images are a very responsive yet very creative way to display your w
  • WIN10去除磁盘写保护(只读属性)的步骤

    WIN10去除磁盘写保护 只读属性 的步骤 1 使用管理员权限进入win10的命令模式 使用系统搜索cmd 然后使用管理员模式打开 如下图 点击搜索 2 输入cmd 3 使用鼠标点击使用管理员身份打开 4 打开之后切换到C盘根目录 cd 这
  • 信号完整性分析基础知识之有损传输线、上升时间衰减和材料特性(一):为什么要关注损耗?

    一个具有极快上升沿的信号输入到真实传输线中 在从传输线输出的时候上升时间会很长 例如 一个上升时间为50ps的信号 在经过一段36inch长 50Ohm传输线后 上升时间增加到1ns 上升时间的退化是由于传输线的损耗 这也是引起码间干扰 i
  • TypeScript中的泛型(泛型函数、接口、类、泛型约束)

    一 泛型函数 TypeScript泛型是一种可以使代码具有更高的可重用性和泛化能力的特性 通过泛型 我们可以定义一种通用的类型或函数 使其能够应对多种类型的输入 泛型在类 函数 接口等多种场景下都可以使用 具体来说 在定义泛型函数时 我们可
  • 2022年SaaS发展趋势——私有本地化部署

    据麦肯锡 物联网 抓住加速机遇 报告预测 到2030年 物联网将在全球创造最高可达12 6万亿美元的经济价值 随着亚马逊 阿里云等云计算巨头不断加码投入 公有云IoT物联网平台因其低成本 易上手 高可靠等好处而被中小企业决策者广泛认可 然而
  • Vue中全局使用Spin组件

    如何全局使用 1 在man js引入Spin import Spin from ivew 2 将Spin挂载到Vue对象原型上 Vue prototype Spin Spin 3 在子组件调用 this Spin show
  • Python进阶:聊聊IO密集型任务、计算密集型任务,以及多线程、多进程

    https zhuanlan zhihu com p 24283040 IO密集型任务 VS 计算密集型任务 所谓IO密集型任务 是指磁盘IO 网络IO占主要的任务 计算量很小 比如请求网页 读写文件等 当然我们在Python中可以利用sl
  • prometheus - node_exporter - CPU利用率(入门基础)

    node exporter CPU 一 获取 各种状态 CPU 的使用率 二 所用函数 1 increase time 增量函数 2 sum 叠加函数 3 by 拆分函数 二 计算 CPU 每分钟的 使用率 思路 步骤如下 1 计算CPU的
  • TCP三次握手与四次挥手

    本文主要讲述的是 1 面试官在问到TCP IP三次握手原理 以及为什么要三次握手 两次握手带来的不利后果 2 面试官问TCP IP四次挥手原理 为什么要四次挥手 TCP IP三次握手原理 首先 给张图片 建立TCP IP三次握手的直观印象
  • 计算机专业毕业设计题目大全文库,计算机专业毕业设计论文题目.doc

    计算机专业毕业设计论文题目 doc 由会员分享 可在线阅读 更多相关 计算机专业毕业设计论文题目 doc 43页珍藏版 请在金锄头文库上搜索 1 计计 算算 机机 专专 业业 毕毕 业业 设设 计计 论论 文文 目目 录录 ASP 类计算机
  • 最大股票收益问题(数组最大差问题)

    最大股票收益问题 数组最大差问题 问题描述 给定一个数组 存储着按照时间排序的股票价格 第 i i个位置的元素为第ii次交易时的股票价格 现假设只允许你进行一次买 然后在某一时刻卖出 单只股票 请设计算法 求解你可能获得的最大收益 如果股价
  • Windows下安装Redis

    打开redis中文官方网站 发现都需要安装在linux上 Windows版本的前往github上下载 地址 https github com microsoftarchive redis releases 由于需要外网比较难下载 所以放一个
  • 使用Fragment实现底部菜单的切换

    在做android项目的时候 经常会遇到底部有几个菜单 点击之后 页面上面部分需要展示不同的内容 如下图 在我的这个例子里面 采用了Fragment来展示点击下面菜单之后的不同数据 开发步骤 1 分析页面布局 页面分成底部菜单和上面的展示区
  • 哈工大计算机网络MOOC作业题解答

    第一周 如图所示网络 A在t 0时刻开始向C发送一个2Mbits的文件 B在t 0 1 e秒 e为无限趋近于0的小正实数 向D发送一个1Mbits的文件 忽略传播延迟和结点处理延迟 请回答下列问题 如果图中网络采用存储 转发方式的报文交换
  • conda SSL错误 SSLError,爬虫应用总结

    1 conda SSL错误 SSLError Can t connect to HTTPS URL because the SSL module is not available 解决办法 使用conda环境来运行爬虫程序 因为无法使用电脑
  • 通过小皮面板启动后端php项目和数据库

    1 启动php项目开启后端网站 可去官网下载 下载后就能使用了 官网地址 小皮面板 phpstudy 让天下没有难配的服务器环境 下载完成后打开 php项目需要启动apache或nginx 目前我用的是nginx 可以更改一些配置 先下载后
  • Linux 定期清理内存脚本

    bin bash 清理内存脚本 释放 PageCache echo echo 1 gt proc sys vm drop caches sudo sh 释放 dentries 和 inodes echo echo 2 gt proc sys
  • 5个用于图像处理的Python库

    图像处理是操纵图像以从中提取特征的现象 在当今计算机视觉和深度学习的世界中 大量使用不同的图像处理算法对图像数据集进行边缘检测 识别和分类 有时 这些算法也会逐帧应用于视频 以从中提取特征 在今天的文章中 我们将介绍5个最好的Python库