首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

python图像的基本操作

发布网友

我来回答

1个回答

热心网友

深度学习算法中,图像处理相关操作和转换涉及以下基本库函数:opencv、pillow、torchvision(tensor)、numpy。

以下是这些库的基本转换介绍。

请注意,tensor通常对图像进行了归一化处理,在将tensor转换为图像时,需要注意这一点。

opencv的颜色通道顺序是BGR,而PIL和torch中的图像颜色通道顺序是RGB。

通过阅读torchvision的源码,我发现transforms中使用的库是numpy和pillow,因此最推荐的方法是使用tensor和pillow。

相应的接口包括:

transforms.ToTensor():将图像转换为tensor。

pic (PIL Image or numpy.ndarray): Image to be converted to tensor.

transforms.ToPILImage():将tensor或ndarray转换为PIL Image。此转换不支持torchscript。

个人偏好使用Pillow和tensor之间的转换方式:首先使用Pillow读取图像,然后直接使用torchvision函数将PIL图像转换为tensor。其次,使用torchvision函数将tensor转换为PIL图像,然后使用Pillow进行图像存储。

关于tensor和opencv的转换,个人认为使用opencv转换tensor比较方便,但tensor转换opencv图像可能会遇到一些问题。

tensor转换为opencv图像的过程是:首先将tensor转换为numpy数组,然后将numpy数组转换为opencv的mat数据。

numpy和tensor之间的转换不是非常常用,后续如有需要再补充。

numpy和pillow之间的转换包括:numpy转换为pillow,pillow转换为numpy。

opencv和pillow之间的转换包括:opencv转换为pillow,pillow转换为opencv。

库函数介绍:

Pillow是一个用于图像处理的Python库,基于Python Imaging Library (PIL)开发。它提供了广泛的图像处理功能,包括图像打开、保存、裁剪、缩放、旋转、滤镜、颜色转换等操作。支持多种常见图像格式,如JPEG、PNG、BMP、GIF、TIFF等。

Pillow的API设计简单,易于使用。它提供了一个Image类,可以方便地创建、操作图像对象。同时,还提供了ImageDraw、ImageFont、ImageFilter等类,用于绘制图像、操作字体、应用滤镜等。

NumPy(Numerical Python)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,还提供了大量的数学函数库。NumPy的前身是Numeric,由Jim Hugunin与其他协作者共同开发。2005年,Travis Oliphant在Numeric中结合了Numarray的特色,并加入了其他扩展,开发了NumPy。NumPy是开放源代码,由许多协作者共同维护开发。

NumPy是一个运行速度非常快的数学库,主要用于数组计算,包括:

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com