gpt4 book ai didi

python - vmin vmax 算法 matplotlib

转载 作者:行者123 更新时间:2023-11-28 20:20:29 27 4
gpt4 key购买 nike

我编写了图像校准脚本(暗框和平场)...这是代码的一部分

for n in range(len(img)):
with pyfits.open(img[n], mode='update', memmap=True) as im:
imgg = im[0].data
header = im[0].header
imgg.astype(float)
imgg = (imgg - dd) / df
imgg[np.isnan(imgg)] = 1
imgg.astype(int)
plt.imshow(imgg, cmap=plt.cm.Greys_r, vmin=0.5, vmax=1.5)
plt.show()

这部分代码用暗框和平场校准图像......当我在绘图vminvmax时使用,我得到了正确的图片但是我不知道 vminvmax 是如何工作的。我需要将此应用于图像数据 (imgg),因为当我保存数据时,我得到的图像没有 vminvmax...

有什么建议吗?

第二个问题……如何将数据更改保存到适合的文件中?当我使用 im.close() 时,此功能仅适用于一个文件,但无法循环使用。

谢谢

编辑

好的,这是完整的脚本

import numpy as np
import pyfits
from matplotlib import pyplot as plt
import glob


dark=glob.glob('.../ha/dark/*.fits')
flat=glob.glob('.../ha/flat/*.fits')
img=glob.glob('.../ha/*.fits')

sumd0 = pyfits.open(dark[0])
sumdd=sumd0[0].data
sumdd.astype(float)
for i in range(1,len(dark)):
sumdi=pyfits.open(dark[i])
sumdi=sumdi[0].data
sumdd=sumdd.astype(float)+sumdi.astype(float)
dd=sumdd/len(dark)

sumf0 = pyfits.open(flat[0])
sumff=sumf0[0].data
sumff.astype(float)
for i in range(1,len(flat)):
sumfi=pyfits.open(flat[i])
sumfi=sumfi[0].data
sumff=sumff.astype(float)+sumfi.astype(float)

ff=sumff/len(flat)

df=(ff-dd)

for n in range(len(img)):
with pyfits.open(img[n],mode='update',memmap=True) as im:
imgg=im[0].data
header=im[0].header
imgg.astype(float)
imgg=(imgg-dd)/df
imgg.astype(int)
plt.imshow(imgg,cmap=plt.cm.Greys_r,vmin=0.5,vmax=1.5)
plt.show()

最佳答案

有点不合理的问题,但我认为这可以满足您的要求(根据您在其他答案中的评论)。

要以与 vminvmax 相同的行为限制数据,请使用 np.clip :

np.clip(data, min, max)

在你的情况下:

data = np.clip(data, 0.5, 1.5)

关于python - vmin vmax 算法 matplotlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31232733/

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