// variaveis usadas
CBlobResult blobs; // ira armazenar todos os blobs
CBlob blob; // ira armazenar um unico blob

/* dado uma imagem binaria (por exemplo, outputFgBinIPL, ), os
componentes conexos sao extraidos com o seguinte comando (essa é a
forma padrao que eu uso, teria que ver como funcionam todos os
parametros para alguma coisa mais específica. */

blobs = CBlobResult( outputFgBinIPL, NULL, 100, true );

essa estrutura 'blobs' irá armazenar todos os componentes conexos
naquela imagem, e para capturar informaçoes sobre cada um, é preciso
fazer um laço, por exemplo como a seguir:

// nao lembro por que, mas deve-se contar a partir do elemento 2
// blobs.GetNumBlobs() retorna o numero de componentes conexos encontrados

for(int b = 2; b < blobs.GetNumBlobs(); b++){

  // a linha abaixo, atribui a uma variavel blob, um unico componente conexo
  blob = blobs.GetBlob(b);

  // o comando abaixo, verifica se é um blob de zeros (por exemplo um
buraco dentro de 1s)
  if(blob.parent!=1)

  // o comando abaixo, verifica se é um blob de uns (por exemplo um
blob de 1s circulado por zeros)
  if(blob.parent==1)

  // o comando abaixo retorna a area do blob
  blob.area

  // tem outro comando, q nao uso, que tambem retorna o perimetro do
blob, se necessario.

  // para retornar o bounding-box pode-se usar:
  blob.MinX();
  blob.MaxX();
  blob.MinY();
  blob.MaxY();
}
