Identificar objeto em imagem e transformar em objeto java
7 respostas
imagejava
A
aquila_rafa
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.
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
aquila_rafa
Já possui a linha ou qualquer outra forma geométrica. quero poder identificá-la e criar um objeto a partir dela
A
aquila_rafa
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
Kronal2 likes
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
aquila_rafa
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
Kronal
Beleza, só implementar, então.
S
staroski1 like
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.