【问题标题】:skimage.transform.rescale changes datatype from uint8 to float64skimage.transform.rescale 将数据类型从 uint8 更改为 float64
【发布时间】:2019-03-16 04:30:29
【问题描述】:

当我使用 skimage.transform.rescale 将图像大小减小 40% 时,数据类型会从 uint8 转换为 float64

我可以手动更改数据类型,但我不想在我的代码中进行太多手动干预。

是否有任何重新调整方法来保持数据类型?我也对更改数据类型的方法持开放态度。

【问题讨论】:

    标签: python image types scikit-image rescale


    【解决方案1】:

    您可以使用实用函数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')
    

    【讨论】:

    • 非常感谢。也感谢您的编辑。我不知道我们应该省略一般的称呼(虽然有道理)我希望在这里感谢是好的 :)
    • 是的,在 cmets 中感谢是非常好的。我的荣幸。你可能想看看Why is it considered rude to say 'thanks in advance'?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    • 2021-01-22
    • 2019-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多