gpt4 book ai didi

python - 我应该如何将 float32 图像转换为 uint8 图像?

转载 作者:行者123 更新时间:2023-12-02 05:54:13 25 4
gpt4 key购买 nike

我想使用 openCV 库在 Python 中将 float32 图像转换为 uint8 图像。我使用了以下代码,但不知道是否正确。

这里Ifloat32图像。

J = I*255
J = J.astype(np.uint8)

如果您能帮助我,我真的很感激。

最佳答案

如果您想将图像从单精度浮点(即 float32)转换为 uint8,Python 中的 numpyopencv 提供了两种便捷的方法。

如果您知道图像的范围介于 0 到 255 或 0 到 1 之间,那么您可以简单地按照您已有的方式进行转换:

I *= 255 # or any coefficient
I = I.astype(np.uint8)

如果您不知道范围,我建议您应用最小最大归一化即:(值 - 最小值)/(最大值 - 最小值)

使用 opencv,您只需调用以下指令:

I = cv2.normalize(I, None, 255, 0, cv2.NORM_MINMAX, cv2.CV_8U)

我输入的返回变量的类型为 np.uint8(由最后一个参数指定),范围介于 0 到 255 之间。

使用numpy你也可以写类似的东西:

def normalize8(I):
mn = I.min()
mx = I.max()

mx -= mn

I = ((I - mn)/mx) * 255
return I.astype(np.uint8)

关于python - 我应该如何将 float32 图像转换为 uint8 图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53235638/

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