scipy.misc is deprecated and has no attribute imresize

文章讲述了在Python中,由于Scipy的imresize函数已被弃用,推荐使用Pillow库的resize方法或OpenCV的cv2.resize()函数来代替。提供了详细的方法转换代码,并解释了不同插值方法的作用。
摘要由CSDN通过智能技术生成

运行

seq = scipy.misc.imresize(seq, self.size, interp='bilinear', mode=None)

出现下面这个

`imresize` is deprecated! `imresize` is deprecated in SciPy 1.0.0, and will be removed in 1.3.0. Use Pillow instead: ``numpy.array(Image.fromarray(arr).resize())``. my_image = scipy.misc.imresize(image, size=(64, 64))

意思是:这段代码中的 imresize 函数已经被弃用(deprecated)了。在 SciPy 1.0.0 版本中,imresize 函数被标记为过时。

过时意味着该函数不再推荐使用,并且在将来的版本中可能会被移除。取而代之的是使用 Pillow 库来替代 imresize 函数。

解决方法:

一、安装旧版本的scipy

pip uninstall xxx -yxxx换成需要卸载的包)

安装1.2.1版本的scipy,正确的命令是:pip install scipy==1.2.1

二、使用 Pillow 库中的 resize() 方法

scipy.misc.imresize(image, size, interp=’bilinear’, mode=None)

image是需要调整大小图片对应的矩阵;

size可以有3种取值:

int(返回图像占当前图像大小的百分比),

float(返回图像大小/当前图像大小),

tuple (需返回图像的大小)。

import numpy as np 
from PIL import Image

# 先将图像转换为 PIL 的图像对象
image_pil = Image.fromarray(image)

# 计算目标大小
target_size = (int(image.shape[1] * self_size), int(image.shape[0] * self_size))

# 调整图像大小,将调整后的图像转换回 Numpy 数组
resized_image = np.array(image_pil.resize(target_size, resample=Image.BILINEAR))

三、利用OpenCV中的cv2.resize()方法来进行图像尺寸调整

import cv2 as cv

img = cv.imread('图片所在路径')

# 例如cv.imread("test/1.jpg")

resized_image = cv2.resize(image, target_size, interpolation=cv2.INTER_LINEAR)

resize(InputArray src, OutputArray dst, Size dsize, 
        double fx=0, double fy=0, int interpolation=INTER_LINEAR )

nputArray src :输入,原图像,即待改变大小的图像;
OutputArray dst: 输出,改变后的图像。这个图像和原图像具有相同的内容,只是大小和原图像不一样而已;
dsize:输出图像的大小,如上面例子(300,300)。

其中,fx和fy就是下面要说的两个参数,是图像width方向和height方向的缩放比例。
fx:width方向的缩放比例
fy:height方向的缩放比例

如果fx=0.3,fy=0.7,则将原图片的x轴缩小为原来的0.3倍,将y轴缩小为原来的0.7倍,
 

interpolation插值):这个是指定插值的方式,图像缩放之后,肯定像素要进行重新计算的,就靠这个参数来指定重新计算像素的方式,

上面三种方法均可以解决“scipy.misc is deprecated and has no attribute imresize”,但第二种方法更好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值