我想使用一个旧的脚本,它仍然使用scipy.misc.imresize()
,它不仅被消除了,而且完全从枕木中移除。相反,devs建议使用numpy.array(Image.fromarray(arr).resize())
或skimage.transform.resize()
。
不再工作的确切代码行如下:
new_image = scipy.misc.imresize(old_image, 0.99999, interp = 'cubic')
不幸的是,我已经不太清楚它到底做了什么。我担心,如果我开始玩旧的枕木版本,我的新脚本将停止工作。我一直用它作为模糊过滤器的一部分。如何使numpy.array(Image.fromarray(arr).resize())
或skimage.transform.resize()
执行与上述代码行相同的操作?很抱歉我没有提供信息。
编辑
我已经确定了这条线是干什么的。它从以下内容转换图像数组:
[[[0.38332759 0.38332759 0.38332759]
[0.38770704 0.38770704 0.38770704]
[0.38491378 0.38491378 0.38491378]
...
对此:
[[[57 57 57]
[59 59 59]
[58 58 58]
...
Edit2
当我使用jhansens方法时,输出如下:
[[[ 97 97 97]
[ 98 98 98]
[ 98 98 98]
...
我不明白scipy.misc.imresize
做什么。
发布于 2019-08-08 14:02:52
您可以查找不推荐函数的文档和源代码。简而言之,使用枕头 (Image.resize
)可以做到:
im = Image.fromarray(old_image)
size = tuple((np.array(im.size) * 0.99999).astype(int))
new_image = np.array(im.resize(size, PIL.Image.BICUBIC))
对于短距图像 (skimage.transform.resize
),您应该在以下方面获得相同的信息:
size = (np.array(old_image.size) * 0.99999).astype(int)
new_image = skimage.transform.resize(old_image, size, order=3)
发布于 2020-04-22 14:01:51
现在不再推荐缩小尺寸了!
imresize在SciPy 1.0.0中不推荐使用,并将在1.3.0中删除。用枕头代替:
numpy.array(Image.fromarray(arr).resize())
。
from PIL import Image
resized_img = Image.fromarray(orj_img).resize(size=(new_h, new_w))
发布于 2019-08-08 15:00:40
这看起来几乎是一种将数组从0.1标度转换为0..255而不进行任何实际调整的方法。如果是这样的话,您可以简单地执行以下操作:
new_image = (old_image * 255).astype(np.uint8)
但是,我意识到第一个示例数组中的浮点数与第二个示例数组中的整数不完全匹配.
Update:如果将重新标度到0..255与调整大小操作结合在一起,例如jdehesa在他们的答案中指出的一种方式,您将重现您的预期结果(直到舍入错误)。但是,在不了解您的代码的情况下,我无法想象它的功能依赖于对映像进行如此少量的大小调整,这就是为什么我猜测这一行代码的目的是将图像转换为0.255(最好如上)。
https://stackoverflow.com/questions/57414277
复制相似问题