python - 将图像从 float32 转换为 uint8 时,蒙版对象消失
问题描述
下面是使用直方图反投影显示检测到的对象的以下掩码
图像的类型为 float32,由算法的输出产生。我想使用cv2.findContours
函数检测轮廓。
如您所知,此函数接受某种图像类型,即 uint8,否则会引发错误。因此,我使用将图像类型从 float32 转换为 uint8 imageFloat.astype(np.uint8)
。
显示新转换的二进制图像(新 uint8)时,它显示黑色图像,这意味着检测到的对象不再可见 (零掩码)
所以我的问题是:有人知道为什么会发生这种情况以及我做错了什么吗?
提前感谢哈立德
解决方案
在转换为 int 之前,您没有放大图像像素的值,这就是您面临错误的原因。
做这个:
imageFloat *= 255
imageFloat.astype(np.uint8)
推荐阅读
- java - java - 如何使用jackson解析字符串转换为JAVA中的json?
- php - TYPO3 10 Form Finisher 发送两封电子邮件
- arrays - 在 Julia 中将一组数据帧转换为多维数组
- amazon-cloudfront - AWS CloudFront:源域名和备用域名 = 相同的域名
- python - terraform google cloud run 添加云 sql 连接
- python - 用 mitmproxy 修改 json body
- sql - 如何将半码转换为 sql
- java - 在 Device Farm 中访问 TestNG 测试的测试资源时出现问题
- php - 在 twig (1.*) 模板中保留变量之间的空格
- python - 如何使用 python 从某个网站复制文本?