Итак, у меня есть двумерный массив, представляющий координатную плоскость, изображение.На этом изображении я ищу «красные» пиксели и нахожу (надеюсь) местоположение красной светодиодной мишени на основе всех красных пикселей, найденных моей камерой.В настоящее время я просто шлепаю свое перекрестие по центроиду всех красных пикселей:
// pseudo-code
for(cycle_through_pixels)
{
if( is_red(pixel[x][y]) )
{
vals++; // total number of red pixels
cx+=x; // sum the x's
cy+=y; // sum the y's
}
}
cx/=vals; // divide by total to get average x
cy/=vals; // divide by total to get average y
draw_crosshairs_at(pixel[cx][cy]); // found the centroid
Проблема этого метода заключается в том, что, хотя этот алгоритм естественным образом размещает центроид ближе к наибольшему шарику (областис наибольшим количеством красных пикселей), я все еще вижу, как мои прицелы прыгают с цели, когда немного красного цвета мерцает в сторону из-за бликов или других незначительных помех.1007 * Как мне изменить этот шаблон, чтобы найти более взвешенный центроид?Проще говоря, я хочу сделать более крупные красные шарики гораздо более важными, чем более мелкие, возможно, даже не обращая внимания на маленькие шарики.