gpt4 book ai didi

python - 如何从 scipy imsave 函数中删除标准化

转载 作者:太空宇宙 更新时间:2023-11-03 14:01:43 26 4
gpt4 key购买 nike

我有一个简单的任务要完成,但我发现当前的保存功能根本没有帮助我。我要做的只是将灰度图像转换为另一幅强度属于较小区间(特别是 120 到 180 之间)的图像。

我实现了转换(就像改变不同的温标),但是当我保存图像时,scipy.misc.imsave 会对其进行标准化。转换是正确的,因为我创建了直方图来显示保存之前的强度,并且它们都位于指定范围之间。

我尝试过其他工具,例如:

imageio.imwrite(path, img)
numpy.save(path, img)
scipy.misc.toimage(img, cmin=120, cmax=180, mode='L').save(path)

我承认最后一个我不太了解这些参数(我有一个猜测),而 documentation没有帮助。有人可以帮我解决这个问题吗?

编辑:我发布代码

def ex3():
I = misc.imread(imgname)
N = numpy.multiply(I , float(12.0/51.0))
N = numpy.add(N, 120)
NEG = I
NEG = numpy.add(NEG, -255)
NEG = numpy.absolute(NEG)
misc.imsave(path, N)
misc.imsave(os.getcwd()+"/a0/results/"+file.replace(path, NEG)

当我切换到 OpenCV 时,图像渲染得非常完美。但如果可能的话,我想坚持使用 Scipy。

最佳答案

正如 Warren Weckesser 所回答的关于这个question ,没有对值进行标准化,但函数根据数据类型重新缩放值。该问题的解决方案是将数组图像的数据类型设置为 uint8,如下所示:

misc.imsave(path, img.astype(numpy.uint8))  

关于python - 如何从 scipy imsave 函数中删除标准化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49196195/

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