我希望这是一个非常直截了当的问题。我正在处理从FITS文件读入的一些图像到numpy数组。我想制作一个RGB图像。问题在于,当我制作RGB图像时,会出现这种白色阴霾。这似乎出现了。或者,我知道黑色区域在此图像中应为黑色,但它们看起来是灰色的。来自G图像的果岭非常漂亮。看起来整个图像上都有白雾或雾。我想也许这是设置alpha的问题?注意将RBGA中的A设置为0和255并没有帮助解决问题。
这是一个图片示例 - 我会展示它,除了我没有足够的声望点。不幸的是,在这种情况下,一张图片值得1000字......
以下是我用来执行此图像处理的代码:
testrgb = np.zeros([512,512,4])
#
# converting read in image to float
tmpr = asi1r.astype('float')
tmpg = asi1g.astype('float')
tmpb = asi1b.astype('float')
#http://akash0x53.github.io/blog/2013/04/29/normalization/ pretty obvious
tmptotal = tmpr+tmpg+tmpb
R = tmpr/tmptotal
G = tmpg/tmptotal
B = tmpb/tmptotal
# eliminate the nans in the division
R[np.isnan(R) == True] = 0.
G[np.isnan(G) == True] = 0.
B[np.isnan(B) == True] = 0.
testrgb[:,:,0] = R*255.
testrgb[:,:,1] = G*255. #asi1g.astype('float')
testrgb[:,:,2] = B*255. #asi1b.astype('float')
testrgb[:,:,3] = 255.
testrgb = testrgb.astype('uint8')
f = plt.figure(figsize=(4,4), dpi=300)
plt.imshow(testrgb,cmap='jet',vmin=0,vmax=200)
plt.colorbar()
plt.show()
f.savefig('test.png')
plt.close('all')
任何帮助将不胜感激。谢谢。
答案 0 :(得分:0)
这似乎不是matplotlib的问题。从您的评论来看,似乎确实规范化是错误的。请尝试以下方法:
tmptotal = tmpr + tmpg + tmpb
testrgb[..., 0] = tmpr
testrgb[..., 1] = tmpg
testrgb[..., 2] = tmpb
testrgb *= (255.*3) / tmptotal
imshow(testrgb, cmap='jet')
vmax
和vmin
设置不适用于RGB图像。