python - 将图像从 float64 转换为 uint8 使图像看起来更暗
问题描述
我有 GAN 生成的 float64 类型的图像,我通过skimage.io.imsave
. 该过程运行良好,保存的图像看起来不错,但我收到如下警告消息:
从 float64 到 uint8 的有损转换。范围 [-0.9999998807907104, 0.9999175071716309]。在保存之前将图像转换为 uint8 以抑制此警告。
然后我尝试通过在使用 function 保存之前将图像转换为 uint8 来消除此警告skimage.img_as_ubyte
。这给了我一个明显更暗的图像,并带有警告
用户警告:从 float64 转换为 uint8 时可能会丢失精度 .format(dtypeobj_in, dtypeobj_out))
我还尝试tf.image.convert_image_dtype
在保存之前使用其他功能,例如来自 tensorflow 的功能。它们都返回比我直接调用 skimage.io.imsave 更暗的图像。这里有什么问题?
解决方案
负输入值将被剪裁。正值在 0 到 255 之间缩放。
由于您的图像在 [-1,1] 范围内,一半的数据将设置为 0,这就是为什么东西看起来更暗的原因。在调用skimage.img_as_ubyte
.
推荐阅读
- python - 绘制水平条形图,给出意想不到的结果
- r - 将 blogdown 与 github 操作一起使用 - 替代 serve_site
- graphql - GraphQL 允许使用可为空条目定义数组的技术原因是什么?
- for-loop - 使用具有 2 个参数的机器人框架进行循环
- laravel - Laravel 与 Laratrust - Mix 清单不存在?
- javascript - MongoDB查询从数组中检索所有内容?
- c++ - 掩蔽结构名称
- vaadin - import com.gitlab.mvysny.jdbiorm.Dao 对我来说失败了
- python - 使用 pd.read 的 Python File Not Found 错误
- node.js - 即使存在依赖项,npm 也无法安装 quick.db