Jump to content
999ANDRE999

Colocação de pontos de leitura

Recommended Posts

999ANDRE999

Boas pessoal...

Tenho um trabalho para fazer um MATLAB cujo objetivo é identificar expressões faciais em imagens.

As fases que preciso de fazer (segundo eu previ, pode nao ser o melhor caminho) para fazer a deteção de expressoes faciais sao as seguintes:

> Foto a testar DONE

> Detetar face DONE

> Detetar boca e olhos DONE

> Colocar pontos de leitura nos cantos da boca e nos olhos (Tenho uma imagem de exemplo para melhor compreenção, mas não consigo coloca-la aqui)

> Medir as distancias entre os pontos, para depois saber as transformações ocorridas (p.e. se a distancia na horizontal e na vertical diminuir em relação a posição de neutro, estará com expressão de espanto, se a distancia na horizontal aumentar e a distancia na vertical mantiver mais ou menos igual estaremos perante um sorriso)

> Classificar expressão facial

Agora bloqueei na fase de colocar pontos de leitura na crop da boca e dos olhos... não sei como fazer com que o matlab coloque esses pontos automaticamente... Alguem me poderá ajudar nesta situação?

Share this post


Link to post
Share on other sites
999ANDRE999

A minha ideia seria: como depois de detectar a boca faço um crop, eu binarizo essa imagem da boca e utilizo um filtro sobel para ficar so com os contornos da boca.

Ora assim fico com uma imagem (matriz) só com zeros e uns. A minha ideia para colocar os pontos de leitura é fazer uma varredura à matriz da imagem da esquerda para a direita. A primeira coluna que encontrar com 1, significa que existe o canto esquerdo da boca nessa coluna. Ora a coluna pode ter 1's em várias linhas. Depois era necessário encontrar o 1 que estiver a meio e esse 1 seria o canto esquerdo da boca. Fazer-se-ia o mesmo da direita para a esquerda e sabiamos onde estava o canto direito e colocava-se um ponto de leitura. Idem de cima pra baixo e de baixo pra cima.

Depois é ainda necessário calcular a distância do canto esquerdo ao canto direito e da distancia do cimo da boca ao fundo.

O meu problema é que não sei como fazer isto em matlab. :confused:

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.