Identificar objeto em imagem e transformar em objeto java

7 respostas
imagejava
A

brasilia-google-earth-teoria-digital
Como posso processar uma image como a abaixo, identificar a linha vermelha e transformar a linha num objeto java para ser renderizado(pintado) dentro de uma GUI ou ser trabalhada pela api Graphics?

Eu quero poder animar o objeto alterando cor, usando como limite para outros objetos etc.

Dicas, sugestões seriam importantes.

7 Respostas

K

A imagem que você tem já possui essa linha vermelha desenhada, ou você quer detectar e extrair a feição da rodovia / ferrovia / etc ali a partir da imagem pra depois desenhar a linha vermelha?

A

Já possui a linha ou qualquer outra forma geométrica. quero poder identificá-la e criar um objeto a partir dela

A

por consequencia, poderia ser um objeto contendo as coordenadas dos pixels dessa linha(nesse caso não importaria a grossura dela, isso seria algo manipulavel)

K

Bom pra isso tem várias formas, uma que me vem a cabeça seria usando uma biblioteca de processamento de imagens*, de grosso modo :

  • converter a imagem pra um espaço mais perceptual tipo HSV ou Lab, pra facilitar detectar cores
  • definir qual cor você quer e qual a faixa dela no espaço de cores escolhido
  • aplicar uma limiarização pra extrair os pixels que atendam essa faixa de cores da imagem
  • aplica uma transformada de hough na imagem pra extrair possíveis linhas
  • filtra o resultado pra remover linhas duplicadas

*sugestões de bibliotecas de processamento de imagem são OpenCV e dlib, e respectivos bindings Java pra elas se Java for requisito.

A

acho q poderia ir pra umcaminho mais simples e alto nivel que identificasse uma linha como no exemplo, circulos preenchidos etc. e criasse um objeto com as coordenadas

K

Beleza, só implementar, então.

S

Esse caminho é simples para você, que é um ser humano que possui uma rede neural que foi treinada durante anos.
Aí você bate o olho na imagem e identifica linhas e figuras geométricas.

Agora para um programa fazer, é necessário algumas técnicas de reconhecimento de padrões e bastante álgebra.

Provavelmente o OpenCV tem recursos para simplificar o desafio.

Criado 4 de junho de 2019
Ultima resposta 6 de jun. de 2019
Respostas 7
Participantes 3