Obliterar fotos com Java

Preciso de uma classe para obliterar os rostos das pessoas nas fotos para ser utilizado em um sistema em Java.
Alguém conhece uma classe em Java para obliterar fotos ???

Defina “obliterar”.

ViniGodoy,

Definir obliterar ?

Você já recebeu uma multa de radar fixo ? a foto da multa vem com o rosto dos passageiros embaçado, ofuscado, impossível de reconhecer os passageiros do veículo.

Precisava de uma classe que embaçasse o rostos das pessoas nas fotos…

Você conhece alguma classe ou biblioteca que faz isso ?

Atenciosamente,

Illuminati Spiritus

Nunca recebi.

[quote]a foto da multa vem com o rosto dos passageiros embaçado, ofuscado, impossível de reconhecer os passageiros do veículo.
Precisava de uma classe que embaçasse o rostos das pessoas nas fotos…
Você conhece alguma classe ou biblioteca que faz isso ? [/quote]

Recentemente no GUJ apareceu um pessoal anunciando uma biblioteca nacional que encontra rostos e os identifica:
http://www.guj.com.br/java/302592

É importante ressaltar que embaçar uma foto não é um problema, e sim, saber que um rosto é um rosto.

Face detection (o que você quer) - http://opencv.willowgarage.com/wiki/FaceDetection

Face recognition - http://docs.opencv.org/modules/contrib/doc/facerec/facerec_tutorial.html

ViniGodoy,

Sorte Sua !!!

ViniGodoy,

Um outro exemplo de obliteração, seria as imagens do street view, que o rosto das pessoas ficam ofuscados, embaçados…

Estou precisando criar uma tela que exibe as fotos e através do mouse ou do teclado definir um retângulo na foto e depois clicar no botão obliterar e o que estiver na seleção do retângulo ficar obliterado, então não é necessário a aplicação reconhecer o rosto nas fotos, o próprio usuário fará isso…

Se é para o usuário fazer isso, beleza.
Mas você pode usar uma coisa intermediária, se possível: deixar já selecionados os rostos, e o usuário pode aceitar ou não a escolha feita pelo programa.

(Os algoritmos que encontram rostos também acham certas coisas inadequadas, como “rostos” em flores - eu tenho uma coleção enorme de fotos de orquídeas, e por acaso descobri que o Google Picasa reconheceu “rostos” em algumas das flores (amarelas com umas pintas roxas - sem contar as imagens de santos e os bonecos de cera que ele identificou como rostos).

entanglement,

Sim, com certeza é uma boa ideia a sua de deixar selecionado os rostos.

Muito obrigado pela dica.

Mas, sem querer abusar, você conhece alguma classe que obliterar as fotos ?

Eu já supunha que “obliterar” fosse o que você falou. Mas é que tem gente que usa termos imaginando um tipo específico de efeito, por exemplo, aqueles “quadradinhos” que o pessoal põe sobre vídeo para proteger testemunhas, ou a sobreposição do rosto de uma pessoa por uma imagem.

Então, como para você vale qualquer coisa que impeça a visão do rosto, concentre-se em descobrir como segmenta-lo. Já que, para destruir o rosto, basta substituir todos os seus pixels pela cor preta.

ViviGodoy,

Sim, é esse o caminho. Mas como é uma coisa muito utilizado atualmente, estava procurando algo pronto ao invés de reinventar a roda.
Você conhece alguma classe que oblitera fotos ?

Corrigindo:

ViniGodoy…

[quote=thingol]Face detection (o que você quer) - http://opencv.willowgarage.com/wiki/FaceDetection

Face recognition - http://docs.opencv.org/modules/contrib/doc/facerec/facerec_tutorial.html[/quote]

Melhor que essa não há. Inclusive já possui todos os tipos de processamento(semântico, pixel a pixel, aritmético etc…)

[quote=illuminati.spiritus]ViviGodoy,

Sim, é esse o caminho. Mas como é uma coisa muito utilizado atualmente, estava procurando algo pronto ao invés de reinventar a roda.
Você conhece alguma classe que oblitera fotos ? [/quote]

Isso não é reinventar a roda. Não se encontra esses algoritmos prontos e de graça como os que a intel entregou na opencv. Ela é a melhor opção para esse tipo de trabalho.

juliocbq,

Obrigado.

Vou olhar estes códigos e ver se atende a minha necessidade…

Também voto na opencv.

thingol,

[quote=thingol]Face detection (o que você quer) - http://opencv.willowgarage.com/wiki/FaceDetection

Face recognition - http://docs.opencv.org/modules/contrib/doc/facerec/facerec_tutorial.html[/quote]

Estes códigos são em C++
Será que não existe classes em java para obliterar imagens ?

Se vai ter alguém que vai fazer a seleção dos rostos, a coisa mais simples é utilizar o Canvas para fazer isso. Simples, fácil e rápido

[quote=illuminati.spiritus]thingol,

[quote=thingol]Face detection (o que você quer) - http://opencv.willowgarage.com/wiki/FaceDetection

Face recognition - http://docs.opencv.org/modules/contrib/doc/facerec/facerec_tutorial.html[/quote]

Estes códigos são em C++
Será que não existe classes em java para obliterar imagens ?

[/quote]

https://code.google.com/p/javacv/

Tem gente que costuma usar um encapsulamento da OpenCV em Java, mas parece que esse encapsulamento sempre anda atrasado em relação ao OpenCV e também não encapsula “tudo”. Portanto, provavelmente você mesmo é que terá de desenvolver sua aplicação em C++ e depois encapsulá-la para uso em Java.