gpt4 book ai didi

python - 如何在astropy,python中通过 "pillars of creation"创建 "make_lupton_rgb of astropy"的好图像?

转载 作者:行者123 更新时间:2023-12-04 10:02:59 39 4
gpt4 key购买 nike

我正在尝试编写代码来生成“创造的支柱”的 rbg 图像。为此,我正在使用与红色、蓝色和绿色相对应的 fit 文件,并尝试使用 make_lupton_rbg 生成 rbg 图像。但是我得到了全绿色图像。我相信,我必须对 Q 和拉伸(stretch)值进行调整,但我找不到任何东西来赋予它好的颜色(如图所示)。

import numpy as np
import matplotlib.pyplot as plt
from astropy.io import fits
from astropy.visualization import make_lupton_rgb

forc=np.float_()
r=fits.open("C:\\Users\AKASH\\Downloads\\673nmos\\673nmos.fits")[0].data
g=fits.open("C:\\Users\AKASH\\Downloads\\656nmos\\656nmos.fits")[0].data
b=fits.open("C:\\Users\AKASH\\Downloads\\502nmos\\502nmos.fits")[0].data

r = np.array(r,forc)
g = np.array(g,forc)
b = np.array(b,forc)

rgb_default = make_lupton_rgb(r,g,b,Q=1,stretch=0.1,filename="pillar.png")
plt.imshow(rgb_default, origin='lower')
plt.show()


拟合文件从这里下载--- https://www.spacetelescope.org/projects/fits_liberator/eagledata/

我得到的输出---

enter image description here

我应该得到的输出(或至少类似的东西)---

enter image description here

最佳答案

缩放 r , g , 和 b基于它们的相对亮度和使用高线性拉伸(stretch)的阵列变得更接近:

import numpy as np
import matplotlib.pyplot as plt
from astropy.io import fits
from astropy.visualization import make_lupton_rgb

forc=np.float_()
r=fits.open("/path/to/673nmos/673nmos.fits")[0].data
g=fits.open("/path/to/656nmos/656nmos.fits")[0].data
b=fits.open("/path/to/502nmos/502nmos.fits")[0].data

r = np.array(r,forc)
g = np.array(g,forc)
b = np.array(b,forc)

rgb_default = make_lupton_rgb(r*5,g*0.75,b*8,Q=0.001,stretch=300,filename="pillar.png")
plt.imshow(rgb_default, origin='lower')
plt.show()

enter image description here

但很明显,线性拉伸(stretch)对尖峰的处理效果很差,这可以通过在应用 make_lupton_rgb 之前进行简单的阈值过滤来补偿。 :

import numpy as np
import matplotlib.pyplot as plt
from astropy.io import fits
from astropy.visualization import make_lupton_rgb

forc=np.float_()
r=fits.open("/path/to/673nmos/673nmos.fits")[0].data
g=fits.open("/path/to/656nmos/656nmos.fits")[0].data
b=fits.open("/path/to/502nmos/502nmos.fits")[0].data

r = np.array(r,forc)*5
g = np.array(g,forc)*0.75
b = np.array(b,forc)*8

t = 250
r[r > t] = t
g[g > t] = t
b[b > t] = t

rgb_default = make_lupton_rgb(r,g,b,Q=0.001,stretch=300,filename="pillar.png")
plt.figure(figsize=(8,8))
plt.imshow(rgb_default, origin='lower')
plt.show()

enter image description here

关于python - 如何在astropy,python中通过 "pillars of creation"创建 "make_lupton_rgb of astropy"的好图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61744271/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com