【发布时间】:2026-01-31 08:55:01
【问题描述】:
我尝试重新缩放 2D 图像(灰度)。 图像大小为 256x256,所需输出为 224x224。 像素值范围从 0 到 1300。
我尝试了 2 种方法来使用 Lanczos 插值重新调整它们:
首先使用 PIL Image:
import numpy as np
from PIL import Image
import cv2
array = np.random.randint(0, 1300, size=(10, 256, 256))
array[0] = Image.fromarray(array[0]).resize(size=(224, 224), resample=Image.LANCZOS)
导致错误信息:ValueError: image has wrong mode
然后是 CV2:
array[0] = cv2.resize(array[0], dsize=(224, 224), interpolation=cv2.INTER_LANCZOS4)
导致错误信息:ValueError: could not broadcast input array from shape (224,224) into shape (256,256)
如何正确操作?
【问题讨论】:
-
现在它应该是一个最小的可重现示例:)
-
只是一个怀疑(我与
opencv合作已经有一段时间了)。cv2中的常量在使用python与原生c时的表示方式略有不同。我会仔细检查 - 这是否真的是python中常量的名称(我认为不是)
标签: python opencv image-processing python-imaging-library downsampling