Pessoal achei em um site um algoritmo que pretendo realizar alguns testes, só o detalhe que além de estar em inglês, não entendi nada de como funciona o algoritmo:
vou postar o algoritmo, e se alguem tiver um pequeno entendimento dele, e ajudar eu agradeço:
The following is a formal description of the Moore-Neighbor tracing algorithm:
Input: A square tessellation, T, containing a connected component P of black cells.
Output: A sequence B (b1, b2 ,…, bk) of boundary pixels i.e. the contour.
Define M(a) to be the Moore neighborhood of pixel a.
Let p denote the current boundary pixel.
Let c denote the current pixel under consideration i.e. c is in M§.
Begin
[color=white]—[/color]Set B to be empty.
[color=white]—[/color]From bottom to top and left to right scan the cells of T until a black pixel, s, of P is found.
[color=white]—[/color]Insert s in B.
[color=white]—[/color]Set the current boundary point p to s i.e. p=s
[color=white]—[/color]Backtrack i.e. move to the pixel from which s was entered.
[color=white]—[/color]Set c to be the next clockwise pixel in M§.
[color=white]----[/color] While c not equal to s do
[color=white]------[/color] If c is black
[color=white]------[/color] insert c in B
[color=white]------[/color] set p=c
[color=white]------[/color] backtrack (move the current pixel c to the pixel from which p was entered)
[color=white]----[/color] else
[color=white]------[/color] advance the current pixel c to the next clockwise pixel in M§
[color=white]----[/color] end While
End
aqui tem o link de demonstração do funcionamento do algoritmo
http://www.imageprocessingplace.com/downloads_V3/root_downloads/tutorials/contour_tracing_Abeer_George_Ghuneim/moore.html