Python 计算加权二维直方图,给出中心偏移量
我有多个2D numpy阵列(明亮物体的图像数据,每个大小为600x600),我使用Python 计算加权二维直方图,给出中心偏移量,python,python-3.x,numpy,histogram,Python,Python 3.x,Numpy,Histogram,我有多个2D numpy阵列(明亮物体的图像数据,每个大小为600x600),我使用skimage.feature.register\u translation对每个单独的图像与堆叠的合成图像进行互相关,以获得每个图像的质心相对于合成图像质心的相对亚像素偏移。我现在想创建一个加权的2d直方图,它包含我所有的个人图像数据,使用每个图像数据的相对位移,以便所有图像数据都精确居中。但我不知道该怎么做。我的代码如下(找到班次后): 但这并没有给我带来任何好处——我认为我的权重参数是错误的(我认为每个图像
skimage.feature.register\u translation
对每个单独的图像与堆叠的合成图像进行互相关,以获得每个图像的质心相对于合成图像质心的相对亚像素偏移。我现在想创建一个加权的2d直方图,它包含我所有的个人图像数据,使用每个图像数据的相对位移,以便所有图像数据都精确居中。但我不知道该怎么做。我的代码如下(找到班次后):
但这并没有给我带来任何好处——我认为我的
权重
参数是错误的(我认为每个图像应该只有一个权重,而不是整个图像?),但我不知道我还能为它添加什么。这些图像来自不同的亮源,所以我不能假设它们的宽度都相同。我如何才能做到这一点?您能尝试将数据[0].ravel()作为权重吗?另外,请提供更多的数据
数据
中的每个条目都是一个600x600数组,因此我可能需要在这里粘贴这些条目。但是,为什么数据[0]?这就是我第一张照片的数据。
import numpy as np
data = #individual image data; this is an array of multiple 2D (600x600) arrays
# Shifts in x and y (each are same length as 'data')
dx = np.array([0.346, 0.23, 0.113, ...])
dy = np.array([-0.416, -0.298, 0.275, ...])
# Bins
bins = np.arange(-300, 300, 1)
# Weighted histogram
h, xe, ye = np.histogram2d(dx.ravel(), dy.ravel(), bins=bins, weights=data.ravel())