+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

将uint16 np.array显示为图像时出现问题

发布于2021-01-23 19:53     阅读(242)     评论(0)     点赞(23)     收藏(2)


0

1

2

3

4

我有一个uint16 3-dim numpy数组,代表一个RGB图像,该数组是从TIF图像创建的。问题是,例如,当我在QGIS中导入原始图像时,显示正确,但是如果我尝试在python中显示(使用plt.imshow),结果将有所不同(在这种情况下,显示为绿色):

QGIS图片:

QGIS图片

图解图像:

绘制图像

我认为这与matplotlib管理uint16的方式有关,但是即使我尝试除以255并转换为uint8,我也无法获得良好的结果。


解决方案


根据您的评论,图像不使用RGB颜色空间编码,因为R,G和B通道的值范围为[0-255],假设每个通道8位。

我不确定图像使用的是哪个色彩空间,但是TIFF文件通常使用针对打印进行了优化的CMYK。

可以尝试使用的其他常见色彩空间包括YCbCr(YUV)和HSL,但是随着显示硬件和视频流技术的发展,这些年来已经出现了许多变化。

要将整个图像转换为RGB颜色空间,我建议使用opencv-pythonpip包。该文件包有据可查,但是作为示例,这是将numpy数组img从YUV转换为RGB的方法:

img_bgr = cv.cvtColor(img, cv.COLOR_YUV2RGB)

0

1

2

3

4

5

6

7

8



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接: https://www.pythonheidong.com/blog/article/787091/d9d29d67b78e3d56f579/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

23 0
收藏该文
已收藏

评论内容:(最多支持255个字符)