首页 > 编程语言 >比较不同Python图形处理库或图像处理库的异同点

比较不同Python图形处理库或图像处理库的异同点

时间:2023-05-22 17:11:17浏览次数:42  
标签:图形处理 img Python Image python 图像处理 图像

python的图像处理库有很多种比如:pillow库 、Numpy库、Scipy库、opencv库、pgmagic库等

其中较常用的是NUmapy库、pillow库 、openCV库,今天我们就这三种图像处理库来进行比较

首先是numapy库;

他是一个python库可以帮助我们处理所有类型的科学计算,他是在执行任何数据预处理或数据科学相关任务是导入的第一个库,处理图像可以说是一个”副业“

使用他我们可以非常方便的操纵图像的RGB值其操作代码:


from PIL import Image
import numpy as np
img = np.array(Image.open('0.jpg'))
img_red = img.copy()
img_red[:, :, (1, 2)] = 0
img_green = img.copy()
img_green[:, :, (0, 2)] = 0
img_blue = img.copy()
img_blue[:, :, (0, 1)] = 0
img_ORGB = np.concatenate((img,img_red, img_green, img_blue), axis=1)
img_converted = Image.fromarray(img_ORGB)
img_converted.show() ## Combine Image Contains 

其次就pillow库他是python中最常用的图像处理库之一,它提供了许多可以用来操纵图像的函数,例如:调整大小,改变滤镜,等等是python中常用且便捷的操作可之一

下面是一个可以使图片对比度更加明显的代码:


from PIL import Image,ImageEnhance
img_original = Image.open("dark.jpg")
img_original.show("Original Image")
img = ImageEnhance.Contrast(img_original)
img.enhance(3.8).show("Image With More Contrast")

openCV库也是python中最常用的图像处理库之一,他的有点在于他可以方便的与网络摄像头图像和视频进行交互,并且他可以执行多种实时任务,

目前主要应用于人脸识别检测,和目标检测等

下面是应用他进行crop操作的代码样例:


import cv2
img = cv2.imread("images/test.jpg")
imgCropped = img[50:283,25:190]
shape = imgCropped.shape
print(shape[0])
imgCropped = cv2.resize(imgCropped,(shape[0]*12//10,shape[1]*2))
cv2.imshow("Image cropped",imgCropped)
cv2.imshow("Image",img)
cv2.waitKey(0)

除了上述三中提到的图像处理课歪还有一种图像处理库其作用和pillow库很相似只不过他多用于处理图像的旋转、锐化、简便等操作他就是pgmagick库

他其实是graphicsMagick库的补充下面是锐化带样例代码:


from pgmagick.api import Image
img = Image('fox.png')
# scaling image up to 1.5x
img.scale((150, 100), 'fox_scaled')

上述介绍了几种图像处理库的大概功能下面叙述其各自优缺点以及异同点

1.scikit-image

scikit-image是一个开源的Python包,适用于numpy数组。它实现了用于研究,教育和工业应用的算法和实用工具。即使是那些刚接触Python生态系统的人,它也是一个相当简单直接的库。此代码是由活跃的志愿者社区编写的,具有高质量和同行评审的性质。

2.Numpy

Numpy是Python编程的核心库之一,并为数组提供支持。图像本质上是包含数据点像素的标准Numpy数组。因此,我们可以通过使用基本的NumPy操作,例如切片、掩膜和花式索引,来修改图像的像素值。可以使用skimage加载图像并使用matplotlib显示图像。

3.Scipy

scipy是Python的另一个类似Numpy的核心科学模块,可用于基本的图像操作和处理任务。特别是子模块scipy.ndimage,提供了在n维NumPy数组上操作的函数。该包目前包括线性和非线性滤波,二值形态学,B样条插值和对象测量等功能函数。

4. PIL/Pillow

PIL是Python编程语言的一个免费库,它支持打开、操作和保存许多不同的文件格式的图像。然而,随着2009年的最后一次发布,它的开发停滞不前。但幸运的是还有Pillow,一个PIL积极开发的且更容易安装的分支,它能运行在所有主要的操作系统,并支持Python3。这个库包含了基本的图像处理功能,包括点运算、使用一组内置卷积核的滤波和色彩空间的转换。

5.OpenCV-Python

OpenCV是计算机视觉应用中应用最广泛的库之一

。OpenCV-Python是OpenCV的python版API。OpenCV-Python的优点不只有高效,这源于它的内部组成是用C/C++编写的,而且它还容易编写和部署。这使得它成为执行计算密集型计算机视觉程序的一个很好的选择。

标签:图形处理,img,Python,Image,python,图像处理,图像
From: https://www.cnblogs.com/222wan/p/17421136.html

相关文章

  • Python中for循环
    在Python中,for循环用于遍历可迭代对象(如列表、元组、字符串等)中的元素,并执行相应的操作。for循环的基本语法如下:forelementiniterable:#执行操作其中,element是一个变量,用于存储每次循环迭代的元素值,iterable是一个可迭代对象,包含一系列元素。以下是一个简单的示例,演示如......
  • AcWing901. 滑雪(python)
    题目详情知识点记忆化DP思路自己的思路(仅参考):一开始想的是找最大值,然后从最大值开始向下滑,但是我们是要求最长路径,不一定是从最高的点滑下去的,也不一定是滑到最低点,而且会存在最大值不止一个的情况,所以我们应该是针对每一个点,都求出当前该点出发能去的最长路径,然后求完之后......
  • Python竖版大屏 | 用pyecharts开发可视化的奇妙探索!
    你好!我是@马哥python说,一枚10年程序猿......
  • python控制微信发消息
    使用pyautogui控制PC版微信,发消息。importpyautoguiimporttimedefOpen_Wechat():#使用快捷键打开微信。这个微信的默认设置的快捷键。pyautogui.hotkey('ctrl','alt','w')time.sleep(1)defChat_Who(ContactPerson):#使用快捷键打开查找,找一个......
  • <Python全景系列-1> Hello World,1分钟配置好你的python环境
    《从此开始:1分钟配置好你的python环境》欢迎来到我们的系列博客《Python360全景》!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题,帮助你掌握这门强大而灵活的编程语法。无论你是编程新手,还是有一定基础的开发者,这个系列都将提供你需要的知识和技能。这是我......
  • < Python全景系列-2 > Python数据类型大盘点
    欢迎来到我们的系列博客《Python全景系列》!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题,帮助你掌握这门强大而灵活的编程语法。无论你是编程新手,还是有一定基础的开发者,这个系列都将提供你需要的知识和技能。Python作为一门强大且灵活的编程语言,拥有丰富......
  • < Python全景系列-3 > Python控制流程盘点及高级用法、神秘技巧大揭秘!
    欢迎来到我们的系列博客《Python全景系列》!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题,帮助你掌握这门强大而灵活的编程语法。无论你是编程新手,还是有一定基础的开发者,这个系列都将提供你需要的知识和技能。这是系列第三篇,在这篇文章中我们将全面深入地......
  • < Python全景系列-4 > 史上最全文件类型读写库大盘点!什么?还包括音频、视频?
    欢迎来到我们的系列博客《Python全景系列》!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题,帮助你掌握这门强大而灵活的编程语言!本文系列第四篇,介绍史上最全PYTHON文件类型读写库大盘点!包含常用和不常用的大量文件格式!文本、音频、视频应有尽有!废话不多说!走......
  • < Python全景系列-5 > 解锁Python并发编程:多线程和多进程的神秘面纱揭晓
    欢迎来到我们的系列博客《Python全景系列》!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题,帮助你掌握这门强大而灵活的编程语法。无论你是编程新手,还是有一定基础的开发者,这个系列都将提供你需要的知识和技能。这是本系列的第五篇,我们将深入探讨Python中的......
  • Python 读取文件首行和最后一行
    常规方法:从前往后依次读取步骤:open打开文件。读取文件,把文件所有行读入内存。遍历所有行,提取指定行的数据。优点:简单,方便缺点:当文件大了以后时间太慢,无法忍受fname='test.html'withopen(fname,'r',encoding='utf-8')asf:#打开文件lines=f.readlines()#......