首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将float32图像转换为uint8图像?

如何将float32图像转换为uint8图像?
EN

Stack Overflow用户
提问于 2018-11-10 10:56:09
回答 2查看 18.4K关注 0票数 6

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

这里的Ifloat32镜像。

代码语言:javascript
复制
J = I*255
J = J.astype(np.uint8)

如果你能帮助我,我将不胜感激。

EN

Stack Overflow用户

发布于 2018-11-10 13:19:52

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

如果你知道你的图像的范围在0到255之间,或者在0到1之间,那么你可以简单地按照你已经做的方式进行转换:

代码语言:javascript
复制
I *= 255 # or any coefficient
I = I.astype(np.uint8)

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

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

代码语言:javascript
复制
I = cv2.normalize(I, None, 0, 255, cv2.NORM_MINMAX, cv2.CV_8U)

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

使用numpy,您还可以编写类似的代码:

代码语言:javascript
复制
def normalize8(I):
  mn = I.min()
  mx = I.max()

  mx -= mn

  I = ((I - mn)/mx) * 255
  return I.astype(np.uint8)
票数 12
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53235638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档