下面的遮罩是通过使用直方图反向投影来显示检测到的对象的蒙版
图像的类型为float32,该类型是算法输出的结果。我想使用cv2.findContours
函数检测轮廓。
如您所知,此函数接受某个图像类型 uint8 ,否则会引发错误。因此,我使用imageFloat.astype(np.uint8)
将图像类型从float32转换为uint8。
在显示新的转换后的二进制图像(新的uint8)时,它会显示黑色图像,这表示不再可见 (零遮罩)
所以我的问题是:有人知道为什么会发生这种情况以及我在做什么错吗?
预先感谢 哈立德
答案 0 :(得分:2)
在转换为int之前,您没有按比例放大图像像素的值,这就是您面临错误的原因。
执行此操作:
imageFloat *= 255
imageFloat.astype(np.uint8)