В настоящее время я реализую алгоритм определения оси минимальной инерции цветной массы (обеспечиваемой вторыми моментами). Для этого мне нужно получить центр масс, заданный первыми моментами.
Функция взвешенного усреднения работает хорошо, но из-за выпадающих пикселей я получаю нежелательные результаты.
Вот функция усреднения:
(например, средневзвешенное значение 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.
Учитывая такое изображение, которое представлено исключительно двумя цветами (фон и передний план), как я могу удалить лишние пиксели? Примечание: Внешние пиксели относятся ко всему, что не является частью большой цветовой массы. Белая точка — это рассчитанный центр масс, который неверен.
Очень признателен.