首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将图片从np.uint16格式转换为np.uint8格式?

如何将图片从np.uint16格式转换为np.uint8格式?
EN

Stack Overflow用户
提问于 2012-07-05 11:23:37
回答 2查看 55.9K关注 0票数 26

我正在创建一个图像,所以:

代码语言:javascript
运行
复制
image = np.empty(shape=(height, width, 1), dtype = np.uint16)

之后,我将图像转换为BGR模型:

代码语言:javascript
运行
复制
image = cv2.cvtColor(image, cv2.COLOR_GRAY2BGR)

为了通过cv2.threshold()函数使用该图像,我想现在将图像转换为dtype = np.uint8。我的意思是,我想要将图像转换为CV_8UC1

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-05 23:04:45

你可以使用cv2.convertScaleAbs来解决这个问题。请参阅Documentation.

查看下面的命令终端演示:

代码语言:javascript
运行
复制
>>> img = np.empty((100,100,1),dtype = np.uint16)
>>> image = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)

>>> cvuint8 = cv2.convertScaleAbs(image)

>>> cvuint8.dtype
dtype('uint8')

希望它能有所帮助!

票数 36
EN

Stack Overflow用户

发布于 2014-02-14 19:35:19

我建议你使用这个:

代码语言:javascript
运行
复制
outputImg8U = cv2.convertScaleAbs(inputImg16U, alpha=(255.0/65535.0))

这将输出一个uint8图像,并将0-65535之间的值分配给之前的值

代码语言:javascript
运行
复制
exemple :
pixel with value == 65535 will output with value 255 
pixel with value == 1300 will output with value 5 etc...
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11337499

复制
相关文章

相似问题

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