skimage.transform.rescale会将数据类型从uint8更改为float64

6
当我使用skimage.transform.rescale将图像减小40%的大小时,数据类型会从uint8转换为float64
我可以手动更改数据类型,但是我不想在我的代码中进行太多手动干预。
是否有任何保持数据类型的缩放方法?我也可以考虑改变数据类型的方法。
1个回答

5

您可以使用实用函数img_as_ubyte将重新缩放的图像转换回uint8

演示

In [26]: from skimage import util, data, transform

In [27]: img = data.moon()

In [28]: img.shape
Out[28]: (512, 512)

In [29]: img.dtype
Out[29]: dtype('uint8')

In [30]: res = util.img_as_ubyte(transform.rescale(img, 0.6))

In [31]: res.shape
Out[31]: (307, 307)

In [32]: res.dtype
Out[32]: dtype('uint8')

非常感谢。也谢谢您的编辑。我不知道我们应该省略通用的问候语(尽管这很合理)。我希望在这里表达我的感激是可以的 :) - Uğur Dinç
是的,在评论中感谢是完全可以的。不用客气。你可能想看一下“为什么说‘提前致谢’被认为是粗鲁的?”(英文原文链接:https://meta.stackexchange.com/questions/98149/why-is-it-considered-rude-to-say-thanks-in-advance) - Tonechas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接