В момента прилагам алгоритъм за идентифициране на оста на минимална инерция на цветна маса (осигурена от вторите моменти). За да го направя, трябва да придобия центъра на масата, както е дадено от първите моменти.
Функцията за претеглено осредняване работи добре, но поради пиксели, които се различават, получавам нежелани резултати.
Ето функцията за осредняване:
(напр. среднопретеглена стойност на 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.
Като се има предвид изображение като това, което е представено само от два цвята (фон и преден план), как мога да премахна външните пиксели? Забележка: Отдалечените пиксели се отнасят за всичко, което не е част от голямата цветна маса. Бялата точка е изчисленият център на масата, което е неправилно.
Оценявам го.