找到图像的质心

问题描述 投票:0回答:1

我有一张灰度图像,想找到该图像的质心(强度中心)。我不想找到每个轴的平均值。

所以我有一个 2D 数组,它表示该图像沿水平轴和垂直轴的强度。质心显然是白点所在的位置,但我无法找到计算它的坐标的方法。

我得到的结果总是错误的。[我的结果是水平方向750,垂直方向454。白点中心坐标沿水平轴为 520,沿垂直轴为 430 axis这是我尝试过的:

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)


python numpy image-processing
1个回答
0
投票

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

我希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.