图像处理相关库简介

本文介绍了Python中的两个图像处理库——PIL和Scipy。PIL是Python的第三方图像处理库,PyTorch中的图像操作依赖于PIL。而Scipy是一个用于数学、科学和工程的软件包,它可以与Numpy协同工作,实现图像处理等功能。在使用Scipy进行图像处理时,需要注意与Numpy矩阵的无缝衔接,并正确处理通道轴的顺序。

1.PIL

PIL(Python Image Library),是python的第三方图像处理库

import PIL.Image

#Image.open()返回一个Image对象,包括size, mode, format等属性
image = Image.open("/home/username/filefold/imagename.jpg")

#保存图像到指定的路径,调用Image对象的save方法
image.save("/home/username/filefold/after_imagename.jpg", 'PNG')

PIL与pytorch

pytorch中的torchvision.transform中的图像crop\scale等函数是基于PIL Image

推荐链接:https://www.cnblogs.com/lyrichu/p/9124504.html(python PIL 图像处理库简介)

2.Scipy

Scipy是一个用于数学、科学、工程领域的常用软件包,可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题。它用于有效计算****Numpy矩阵****,使Numpy和Scipy协同工作,高效解决问题。

Scipy与numpy

主要作用: 可实现图像处理与numpy之间的无缝衔接:

import numpy as np
import scipy.misc
 

image=np.load("/home/username/filefold/imagename.jpg")
image=np.resize(image,[63, 63])
 
#将图像保存到指定路径上,可以直接将numpy保存成图像*******************
scipy.misc.imsave("C:/Users/zy/Desktop/2000.png", image)


  • 注意:如果直接使用imsave要注意CHW的顺序,imsave()里面会调用toimage(channel_axis=2),也就是说默认最后一个维度是通道数C,如果传进imsave的image的shape不符合要求会报ValueError: Channel axis dimension is not valid.解决方法就是用下面的方法,无需指定channel_axis的值,默认为NONE,函数中会自动寻找=3的维度作为通道数
  • 将numpy保存成.png图片
#scipy.misc默认保存的图像是0-255,如果想要严格的保存numpy数组中的数字,比如想要保存成图像分割的类别label,需要自己指定cmin,cmax参数
scipy.misc.toimage(preb[i], cmin=0.0, cmax=255).save(os.path.join('./pred_res/image3', str(name[i])))
  • imread():返回的是 numpy.ndarray 也即 numpy 下的多维数组对象;
#用scipy处理图像
from scipy.misc import imread, imresize, imsave
I = imread('./cat.jpg')
I_tinted = I * (1, .95, .9)
I_tinted = imresize(I_tinted, (300, 300))
                # print(I_tinted.shape)
imsave('./figs/cat_tinted.jpg', I_tinted)

#若想显示图像,则一般使用 matplotlib 下的 相关函数:
import matplotlib.pyplot as plt
plt.subplot(1, 2, 1)
plt.imshow(I)
plt.subplot(1, 2, 2)
plt.imshow(I_tinted)
plt.axis('off')
plt.show()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值