【问题标题】:Masked object disapear when converting image from float32 into uint8将图像从 float32 转换为 uint8 时,蒙版对象消失
【发布时间】:2021-01-07 10:25:32
【问题描述】:

下面是使用直方图反投影显示检测到的对象的掩码

图像的类型为 float32,由算法输出。我想使用cv2.findContours 函数检测轮廓。

如您所知,此函数接受特定的图像类型即 uint8,否则会引发 ans 错误。因此,我使用imageFloat.astype(np.uint8)将图像类型从float32转换为uint8。

当显示新转换的二进制图像(new uint8)时,它会显示一个黑色图像,这意味着检测到的对象不再可见 (零掩码)

所以我的问题是:有人知道为什么会发生这种情况以及我做错了什么吗?

提前致谢 哈立德

【问题讨论】:

    标签: python numpy opencv image-processing mask


    【解决方案1】:

    在转换为 int 之前,您没有放大图像像素的值,这就是您面临错误的原因。

    这样做:

    imageFloat *= 255
    imageFloat.astype(np.uint8)
    

    【讨论】:

    • 谢谢伙计,这太微不足道了,我应该知道这一点。谢谢。不胜感激:')
    猜你喜欢
    • 2019-12-11
    • 1970-01-01
    • 2023-03-29
    • 2019-11-14
    • 2020-05-16
    • 2022-01-15
    • 2016-06-19
    • 2021-01-22
    • 1970-01-01
    相关资源
    最近更新 更多