我有一张灰度图像,想找到该图像的质心(强度中心)。我不想找到每个轴的平均值。
所以我有一个 2D 数组,它表示该图像沿水平轴和垂直轴的强度。质心显然是白点所在的位置,但我无法找到计算它的坐标的方法。
我得到的结果总是错误的。[我的结果是水平方向750,垂直方向454。白点中心坐标沿水平轴为 520,沿垂直轴为 430 这是我尝试过的:
img
是表示该图像强度的二维数组。它是一个 1024 行、1280 列的阵列。我怎样才能找到这个图像的质心?
intensite_total = np.sum(img)#This contains the sum of each element from the img matrix
X = np.linspace(0,1023,1024)
print(X)
print(np.shape(X))
print(np.shape(X))
x_bary = np.sum(np.dot(X,img))/intensite_total
print(x_bary)
print("YYYYYYYYYYYYYY")
Y = np.linspace(0,1279,1280)
print(Y)
print(np.shape(Y))
print(np.shape(np.dot(img,Y)))
y_bary = np.sum(np.dot(img,Y))/intensite_total
print(y_bary)
import numpy as np
image = np.random.random((100, 100))
x = np.arange(image.shape[0])
y = np.arange(image.shape[1])
yy, xx = np.meshgrid(y, x)
A = image.sum()
# Center of mass
x_cms = (x * image).sum() / A
y_cms = (y * image).sum() / A
print(x_cms, y_cms)
哪个打印:
49.647435178565686 49.647435178565686
我希望这有帮助!