我试图通过在每个图像中创建像素强度的直方图,然后将天空值设置为与最高频率的bin的强度相等,来减少天文图像。然后我们的想法是从每个像素中减去这个天空值帧索引器错误:布尔索引与沿维度0的索引数组不匹配;维度为3651469,但相应的布尔维度为3651468
#sciFlat is a list containing three images in array form.
sciFlat = np.asarray(sciFlat)
minpix = min(sciFlat.flatten())
maxpix = max(sciFlat.flatten())
rng = int(maxpix-minpix)
#These are histogram ranges, now loop through each image.
#Sky subtract science images.
sciSky = []
for i in range(3):
hf = np.histogram(sciFlat[i].flatten(), bins=rng, range=(minpix,maxpix))
skyval = hf[1][hf[0] == max(hf[0])]
print(skyval)
skySub = sciFlat[i] - skyval
sciSky.append(skySub)
在 我希望代码能够成功地完成数字直方图应返回hist(大小为n的扁平数组)和bin_edges(长度为n的1D数组)。在
索引器错误回溯(最近一次调用)
^{pr2}$索引器错误:布尔索引与沿维度0的索引数组不匹配;维度为3651469,但相应的布尔维度为3651468
我相信只是你的逻辑在循环中失败了,写出了直方图输出:
直方图为您提供了值的边缘,您最需要的是边缘的中点:
^{pr2}$通过设置中间值而不是边缘,直方图的维数相同。为了说明边缘和中间的区别:
^{3}$星形表示最大的中点,如您所见,它位于边之间:
相关问题 更多 >
编程相关推荐