0

これがかなり率直な質問になることを願っています。FITS ファイルから読み取ったいくつかの画像を numpy 配列に処理する作業を行っています。RGB画像を作りたいです。問題は、RGB 画像を作成すると、この「白いもや」が現れるように見えることです。または、この画像では黒い領域が黒くあるべきであることはわかっていますが、代わりに灰色に見えます。G イメージのグリーンがかなりきれいに出ています。画像全体に白いもやや霧があるように見えます。おそらくアルファの設定に問題があると思いましたか?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')

どんな助けでも大歓迎です。ありがとうございました。

4

1 に答える 1

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 イメージには適用されません。

于 2014-12-07T19:12:10.150 に答える