You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scipy无法导入imresize报错求助:更换Pillow仍未解决

解决Scipy中imresize导入报错的问题

问题根源

Scipy的imresize函数在新版本中已被移除,因此直接从scipy导入会触发ImportError。

可行替代方案


方案1:使用OpenCV的cv2.resize(推荐,无需额外安装)

你已经导入了cv2,直接替换原有代码即可。注意cv2.resize的尺寸参数顺序是**(宽度, 高度)**,和原imresize的(高度, 宽度)相反:

# 删除这行:from scipy import imresize
# 修改resize调用部分
gray_image = cv2.resize(gray_image, (120, 100))

方案2:使用scikit-image的resize

先安装依赖:

pip install scikit-image

然后修改代码:

# 导入resize
from skimage.transform import resize
# 修改resize调用,preserve_range=True保证数值范围不变,避免影响模型预测
gray_image = resize(gray_image, (100, 120), preserve_range=True)
# 转换为整数类型(匹配原灰度图格式)
gray_image = gray_image.astype(np.uint8)

方案3:使用Pillow的Image.resize

修正你之前的错误用法,需要将numpy数组与Pillow图像对象互相转换:

# 导入Image
from PIL import Image
# 修改resize调用部分
gray_image = Image.fromarray(gray_image)
# Pillow的resize参数也是(宽度, 高度)
gray_image = gray_image.resize((120, 100))
gray_image = np.array(gray_image)

修改后的完整代码(以方案1为例)

import cv2
import imutils
import numpy as np
from sklearn.metrics import pairwise
from keras.models import load_model
import PIL

def getPredictedClass(model):
    image = cv2.imread('Temp.png')
    gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    # 改用cv2.resize,尺寸顺序为(宽度, 高度)
    gray_image = cv2.resize(gray_image, (120, 100))
    gray_image = gray_image.reshape(1, 100, 120, 1)
    prediction = model.predict_on_batch(gray_image)
    predicted_class = np.argmax(prediction)

内容的提问来源于stack exchange,提问作者Sana Naz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 00:50:38