python - 使用 make_lupton_rgb 获取深色图像
问题描述
在这种情况下,我正在使用 astropy 可视化来制作 M66 的彩色图像。在做任何事情之前,我了解到我必须使用numpy.float_()投射我的 RGB .fts 数组
forCasting = np.float_()
### READING
b = fits.open("data/"+"M66-Blue.fts")[0].data
r = fits.open("data/"+"M66-Red.fts")[0].data
g = fits.open("data/"+"M66-Green.fts")[0].data
### CASTING
r = np.array(r,forCasting)
g = np.array(g,forCasting)
b = np.array(b,forCasting)
这样我就可以继续我的伸展运动:
stretch = SqrtStretch() + ZScaleInterval()
r = stretch(b)
g = stretch(r)
b = stretch(g)
plt.imshow(r, origin='lower')
plt.show()
plt.imshow(g, origin='lower')
plt.show()
plt.imshow(b, origin='lower')
plt.show()
然后我只使用astropy.visualizaion中的 make_lupton_rgb 方法,如下所示,但我有一个超暗的图像,我无法区分任何东西。有人知道为什么我在这里有一个黑暗的最终图像吗?你有什么建议吗?
### SAVING
# rgb_default = make_lupton_rgb(r, g, b, minimum=1000, stretch=900, Q=100, filename="provafinale.png")
rgb_default = make_lupton_rgb(r, g, b, filename="provafinale.png")
plt.imshow(rgb_default, origin='lower')
plt.show()
谢谢!
解决方案
看起来您必须stretch
设置Q
.
默认值为和,这会给出深色结果。 make_lupton_rgb
stretch=5
Q=8
我没有astropy
天文学方面的经验。
我只是玩了这些论点,并使用 and 获得了明亮的stretch=1
图像Q=0
。
rgb_default = make_lupton_rgb(r, g, b, minimum=0, stretch=1, Q=0, filename="provafinale.png")
我尝试计算minimum
和stretch
使用np.percentile
, 来线性拉伸输出。
我使用index_fitsm8_050507_9i9m
中的图像测试了代码。
这是我用于测试的代码:
import numpy as np
from astropy.io import fits
from astropy.visualization import SqrtStretch
from astropy.visualization import ZScaleInterval
from astropy.visualization import make_lupton_rgb
from matplotlib import pyplot as plt
forCasting = np.float_()
### READING
# http://www.mistisoftware.com/astronomy/index_fits.htm
r = fits.open("m8_050507_9i9m_R.FIT")[0].data
g = fits.open("m8_050507_9i9m_G.FIT")[0].data
b = fits.open("m8_050507_9i9m_B.FIT")[0].data
# Crop the top and the right margin (contains black pixels)
r = r[:, :-200]
g = g[:, :-200]
b = b[:, :-200]
### CASTING
r = np.array(r,forCasting)
g = np.array(g,forCasting)
b = np.array(b,forCasting)
stretch = SqrtStretch() + ZScaleInterval()
r = stretch(b)
g = stretch(r)
b = stretch(g)
plt.imshow(r, origin='lower')
plt.imshow(g, origin='lower')
plt.imshow(b, origin='lower')
### SAVING
# https://docs.astropy.org/en/stable/api/astropy.visualization.make_lupton_rgb.html
# astropy.visualization.make_lupton_rgb(image_r, image_g, image_b, minimum=0, stretch=5, Q=8, fil/ename=None)[source]
# Return a Red/Green/Blue color image from up to 3 images using an asinh stretch.
# The input images can be int or float, and in any range or bit-depth.
lo_val, up_val = np.percentile(np.hstack((r.flatten(), g.flatten(), b.flatten())), (0.5, 99.5)) # Get the value of lower and upper 0.5% of all pixels
stretch_val = up_val - lo_val
rgb_default = make_lupton_rgb(r, g, b, minimum=lo_val, stretch=stretch_val, Q=0, filename="provafinale.png")
# Cut the top rows - contains black pixels
rgb_default = rgb_default[100:, :, :]
plt.imshow(rgb_default, origin='lower')
plt.show()
推荐阅读
- python - 如何测量我的 python 脚本使用的数据量(互联网数据)?
- mysql - 包含属性或值的 json 对象的路径
- javascript - 如何在 gatsbyJs (React) 中制作一个显示卡片内下一个数组项的按钮
- node.js - 如何使用 node.js 发送短信
- javascript - 防止用户在 html 相机中切换捕获模式
- python-3.x - 向函数生成的图形添加子图
- azure-cdn - 我们如何将端点从一个 CDN 配置文件移动到另一个?
- javascript - Monster Admin Template 中的 emulateTransitionEnd JQuery 自定义函数原型使 Bootstrap 不适用于某些 Windows 操作系统
- python - 熊猫转型
- python - 如何在使用 setuptools (data_files) 安装的 Python 用户配置文件中包含路径?