Fecho convexo

Fecho convexo

por Igor Ribeiro Sucupira -
Número de respostas: 2

Eu estava aqui dando uma olhada no algoritmo dado em aula para cálculo de fecho convexo e fiquei seriamente intrigado quanto à utilidade dele.

Se utilizarmos um algoritmo geométrico (com o algoritmo de Graham) para o cálculo exato do fecho convexo, o consumo de tempo será algo como Teta(n*lgNão), sendo n o número de pontos da imagem. Como talvez seja necessário, em seguida, realizar um preenchimento, vou acrescentar um tempo Teta(n*h) ao que já citei, sendo h o número de dilatações necessárias para concluir o preenchimento (estou supondo que o tamanho do elemento estruturante é constante, uma vez que isto não afeta a comparação entre os dois métodos que estou considerando). Ou seja: minha análise pedreira nos dá um tempo Teta(n*(lgNão + h)).

Com o método dado em aula, temos algo como Teta(n*b), sendo b o número de transformações hit-or-miss necessárias. Esse número b não me parece muito diferente do h ali em cima (sem contar que aqui temos quatro elementos estruturantes), assim como não me parece assintoticamente inferior a lgNão (eu chutaria raizNão para ele).

Enfim, acho que analisar esses métodos de forma cuidadosa exigiria algumas formalizações trabalhosas. Mas, pelo menos à primeira vista, não consigo enxergar uma desvantagem no consumo de tempo de um algoritmo geométrico que justifique a sua substituição por um algoritmo, digamos, "de aproximação".

O Gonzalez comenta algo sobre o assunto (não estou com o livro)?
Em resposta à Igor Ribeiro Sucupira

Re: Fecho convexo

por Igor Ribeiro Sucupira -

Tá: no caso do fecho convexo, talvez seja excesso de "pegação no pé" da minha parte. sorriso
Mas, para a extração dos componentes conexos, por que não usar a boa, velha, popular e elegante busca em profundidade? piscando
Em resposta à Igor Ribeiro Sucupira

Re: Fecho convexo

por Carlos Hitoshi Morimoto -

oi igor,

talvez eu nao seja a pessoa mais indicada para falar das belezas da morfologia matematica, mas a complexidade computacional dos algoritmos nao deve ser levada em consideracao, ainda.

mas deixa eu defender um pouco o metodo. ele oferece um formalismo que permite obter varios resultados (feixo, contorno, esqueleto, etc) a partir de operacoes elementares, o que a torna "elegante" (eficiente e' outro assunto), e esses algoritmos sao mais faceis de entender e implementar a partir dessas operacoes basicas, mesmo porque se baseiam em teoria dos conjuntos. Voce tambem nao tem restricao alguma com relacao a entrada, voce opera sobre uma matriz binaria, nao leva em consideracao coordenadas ou outras limitaacoes sobre a forma ou dimensao dos objetos por exemplo.

[]s

ht