我写了一个图片灰度重心坐标提取的程序,但是运行后发现,当计算的像素为252*200时,计算结果和我用MATLAB相同算法结果一致,但是,当我把图片的像素提高到1920*1200时,结果就出现问题,现在可以确定的是灰度数组是没有问题的,我怀疑是算法上哪里有问题。
labview前后面板
int sum = 0; // 所有数的和
int sum1 = 0; // [(第一列的和*1) + (第二列的和*2) + ... + (第n列的和*n)]
int i;int j;
for(int (i = 0); i < n; i++) {
for (int( j = 0); j < m; j++){
sum1 = arr[j][i] * (i + 1) + sum1;
sum = arr[j][i] + sum;
}
}
int a0=sum;
int a1=sum1;
int sum2 = 0; // [(第一行的和*1) + (第二行的和*2) + ... + (第n行的和*n)]
for(int( i = 0); i < m; i++) {
for(int (j = 0); j < n; j++) {
sum2 = arr[i][j] * (i + 1) + sum2;
}
}
int a2=sum2;
float x = sum1 / sum;
float y = sum2 / sum;
原来像素为252200时计算结果没问题,把图片的像素提高到19201200后出错,把sum、i、j变量改为float类型试试