我正在开发一个程序,让用户在一个涂鸦区域中绘制一个数字"按下按钮,应用程序将使用神经网络分类器预测他输入的数字。
现在,为了训练神经网络,我使用了MNIST数据库,它指定了以下内容:"来自NIST的图像尺寸标准化以适应20x20像素的盒子,同时保留它们的宽高比[...]图像是通过计算像素质量的中心,以28 x 28图像为中心。
我面临的问题是,在调整用户在涂鸦区域绘制的数字大小调整为20 x 20之后,我需要计算像素的质心,以便我可以将其居中在28 x 28图像的中间。
我该如何计算?
答案 0 :(得分:3)
“质心”(对于二进制图像)有点复杂的说法是“每个维度的平均值”。换句话说 - 取所有x坐标并对它们求平均值 - 你得到的是“质心”的x坐标,对于y也是如此。
在python中,对于X
中的数据,它将是
center_of_mass = X.mean(axis=0)
如果您有像素的强度,您可以将它们用作“权重”,从而导致加权平均值,这就是全部。
答案 1 :(得分:1)
在这里,让我search that为你......
您将平均距离乘以每个像素的重量 - 几乎可以肯定是1.0。简而言之,取所有 x 坐标的平均值和所有 y 坐标的平均值;这给了你质量中心。