我目前正在实现一种算法,用于识别有色质量的最小惯性轴(由二阶矩提供)。为此,我需要获取第一时刻给出的质心。
加权平均函数运行良好,但由于异常像素,我收到了不希望的结果。
这是平均函数:
(例如 x 的加权平均值)
for (i = 0, i < rows, i++) {
for (j = 0, j < cols, j++) {
if (colorAt(i,j).isForeground()) {
tempSumX++;
totalForeground++;
}
}
x_ += i*tempSumX;
tempSumX = 0;
}
x_ /= totalForeground; //where x_ represents the x coordinate of the weighted center of mass.
给定这样一张仅由两种颜色(背景和前景)表示的图像,我如何才能删除外围像素?注意:离群像素指的是不属于大色 block 的任何东西。白点是计算出的质心,这是不正确的。
非常感谢。
最佳答案
有很多洪水填充算法可以在给定起点的情况下识别所有连接的像素。
或者,去除像这样来自噪声的小异常值的一种常见方法是腐 eclipse 图像,然后将其扩大以恢复到相同的大小——尽管如果你纯粹是在做 CoG,你不一定需要扩张步骤
关于algorithm - 从小的二值图像中去除异常像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11471760/