用python用rgb画什么_python – 如果使用colormap或RGB数组,matplotlib imshow绘制的不同...

我发现正确的情节更具艺术性……

matplotlib在解释图像时相当复杂.大致如下:

>如果图像是任何类型的NxM数组,则通过色彩图解释(自动缩放,如果没有另外说明). (原则上,如果数组是一个缩放到0..1的浮点数组,它应该被解释为灰度图像.这就是文档所说的,但实际上这不会发生.)

>如果图像是NxMx3浮点数组,则RGB分量将被解释为介于0..1之间的RGB分量.如果这些值在该范围之外,则采用正模1,即1.2 – > 1. 0.2,-1.7 – > 0.3等

>如果图像是NxMx3 uint8数组,则将其解释为标准图像(0..255组件)

>如果图像是NxMx4,则解释如上,但第四个组成部分是不透明度(alpha)

因此,如果为matplotlib提供除uint8或float之外的NxMx3整数数组,则不会定义结果.但是,通过查看源代码,可以理解奇怪的行为:

if A.dtype != np.uint8:

A = (255*A).astype(np.uint8)

其中A是图像阵列.所以,如果你给它uint16值0,1,2,3,4 ……,你得到0,255,254,253 ……是的,它看起来很奇怪. (恕我直言,解释可能会更直观,但这就是它的完成方式.)

在这种情况下,最简单的解决方案是将数组除以65535.然后图像应该符合预期.此外,如果您的原始图像是真正线性的,那么您需要进行反向伽马校正:

img1_corr = (img1 / 65535.)**(1/2.2)

否则你的中间色调会太暗.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值