gpt4 book ai didi

Python:浮点图像/替代 matlab 的 im2double?

转载 作者:行者123 更新时间:2023-11-28 18:54:36 26 4
gpt4 key购买 nike

我正在尝试将一些 matlab 代码转换为 python,而 im2double 函数给我带来了麻烦。它获取图像并返回一个矩阵,其中像素使用 double 而不是整数。

目前我正在使用 PIL 处理我的图像。它有一个 convert 方法,可以将 'F' 作为参数,但它所做的只是将整数值 255 转换为 255.0 。据我所知没用。

我遇到的问题是我正在做一些图像处理,然后必须保存它们。我可以标准化我的值,使它们落在 0-255 范围内,但我失去了一些精度。它足够小,通常无关紧要,但在这里却很重要。

我试过使用“tiff”文件格式,但效果不佳。虽然我可以写入/读取它,但我得到的结果不是正确的,我目前只能将像素转换为 255,这会导致精度损失,正如我之前所说的。我还尝试了我之前在谷歌上发现的 PIL 支持的这种 'SPIDER' 文件格式,尽管我无法在编辑器上打开图像来检查它是如何工作的。

最佳答案

在 Python 中正确执行此操作的方法是使用 Numpy .您可以通过 PIL into numpy 阅读图像阵列。此时,您可以通过 numpy/scipy 使用各种类似 Matlab 的矩阵运算。更改数组的精度只是通过 numpy 切换数组数据类型的问题。最近releases PIL 的一部分包括来自 Travis Oliphant 的补丁,让您无需额外的 hacker 操作即可完成此操作。

通过使用浮点 TIFF 可以在不损失精度的情况下将数据保存为更常见的可读图像格式。我用 GDAL library连接到多种图像格式的编写器/读取器。如果你想要无损压缩,TIFF 也可以使用 zlib 进行压缩。

关于Python:浮点图像/替代 matlab 的 im2double?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5365865/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com