В принципе, это дополнительный вопрос к проблеме, возникшей несколько недель назад , хотя речь идет об алгоритме в целом без применения к моей реальной проблеме.
Алгоритм в основном просматривает все строки на рисунке, начиная с верхнего левого угла, до тех пор, пока не найдет пиксель, являющийся границей. В псевдо-C ++:
int start = 0;
for(int i=0; i<amount_of_pixels; ++i)
{
if(pixels[i] == border)
{
start = i;
break;
}
}
Когда он находит его, он запускает алгоритм движущихся квадратов и находит контур для любого объекта, к которому принадлежит пиксель.
Допустим, у меня есть что-то вроде этого:
Где все, кроме белого цвета, является границей.
И нашли точки контура первого шарика:
Для общего алгоритма все кончено. Он нашел контур и сделал свое дело. Как я могу перейти к двум другим объектам, чтобы найти их контуры?