Capturar a distancia real entre dois pontos numa imagem

É possível determinar a distância real (em centimentros ou metros) entre dois pontos quaisquer numa imagem??
Exemplo: Tenho uma foto de uma varanda de uma casa e gostaria de sabem qual a area desta varanda.
Caso seja possível, qual classe devo utilizar para tanto??
Desde já agradeço por qualquer esclarecimento.

Esse é mais um problema de matemática do que de API…
Se você souber em que escala está a imagem, basta aplicar umas regras de 3 aí…

Concordo com o ramon, isso é problema de matemática. Você pode tentar descobrir a escala. Se não for possível, poderia procurar algum objeto da imagem que dê pra saber o tamanho real e a partir dele descobrir o resto. Dica: um azulejo, por exemplo, os tamanhos são padrão.

Mas eu ñ quero o tamanho da imagem total. Quero selecionar uma determinada área, e saber qual a real distância entre o ponto A e o ponto B.
Seria algo como: Tirei a foto da frente de uma casa, essa casa tem uma varanda e eu quero fecha esta varanda com grade. Então eu preciso saber a partir desta imagem, qual é a área à qual eu vou fechar com grade.
Não sei se consegui explicar, mas é por ai.

Como jah foi dito usa a matematica… e getSize();
ou se não usa um paint da vida e vê o tamanho dela pelos pedaços você deve ter o tamanho original, não tem

outra coisa que você pode tambem fazer é coloca -la em uma Jframe"ñ me perguntei que eu ñ sei"
mas da certeza ja vi fazerem … e ai você coloca botões ou labels transparentes e fica mudando eles de posição por drag e drop
ai vicê pede get X(), e getY(), para conseguir a posição dos pontos e com isso pega a distancia dos dois e encontra o que você quer .

Essa é a Dúvida: Qual a distância entre os pontos.
Estou pretendendo desenvolver um sistema para uma Serralheria, e as fotos provavelmente quem vai fornecer serão os clientes.
Dai a necessidade de saber qual a distância entre os pontos na área selecionada.

Tenta colocar dois botôes por drag and drop, que manipula posição
cira um metodo que depois de cada movimentação em drag and drop lhe retorna a posição dos botões e assim conseguira as posições caso queira crie um metodo que ache a distancia entre os pontos ou que lhe de alguma imformação desta relevancia.
quanto ao drag and drop, eu apenas sei usar ela por interface grafica … caso queira usa e para ativar o metodo você coloca action button ou algo parecido

Vc teria algum exemplo de como implementar isso?? Ainda sou meio leigo em java.
Obrigado pelos esclarecimentos.

Distância através de fotografia? Sem um elemento de comparação e um padrão de captura, a sua tarefa vai ser impossível.

Até!

Olá,

Pegar a distância entre dois pontos em uma imagem é fácil uma vez que você tenha a coordenada deles.

Mas o problema no seu caso é que você quer o tamanho real do objeto fotografado! Isso não é possível a não ser que você saiba com exatidão a escala da imagem na fotografia. Por exemplo, em uma foto a distância entre a cabeça e o rabo de um gato é de 10cm. Em outra foto, a distância entre uma mão e outra do Cristo Redentor também pode ser 10 cm…

ESTE é o maior problema. Dificilmente o cliente vai chegar com a foto e dizer “essa é a foto da minha fachada, ela está em uma escala de 110:1, quer dizer, cada centimetro na foto representa 1,10metros”.

Conclusão: infelizmente não vai dar para fazer não :frowning:

O que você pode fazer para pegar a distância aproximada é pegar o EXIF da foto, fazer um cálculo de acordo com a distância focal da lente. Isso tem alguns problemas:

  • Não são todas as câmeras que dão todas as informações úteis ao exif, como focal length;
  • Os cálculos serão feitos muito aproximados, pois não podemos garantir a competência em tirar fotos da pessoa e nem dos engenheiros japoneses que fizeram o auto-foco;
  • A distância focal não é real, tem que ser adicionado um fator de multiplicação devido ao crop do sensor ( como o tamanho do sensor é menor do que 35mm ). Isso é um mistério nas saboneteiras ( câmeras ultra-portáteis ).

Até!

Bem como ja foi dito o problema é matematico vc tenque mapear a area da foto com a area real… porem o problema principal é como? e ai não tem nenhum fisico ou matematico no forum que possa ajudar o rapaz???

Uma forma simples de saber a real escala é pedir que se fotografe a tal coisa juntamente com uma régua ou esquadro cujo tamanho é conhecido.
Como são casas, então você pode pedir para a pessoa fotografar a porta e o esquadro na mesma foto.
Obviamente você tem o seguinte problema: é difícil você conseguir fotografar de forma exatamente perpendicular à parede de referência. Por isso é que falei em um esquadro e não uma régua, porque você pode levar isso em conta na hora de fazer as contas.

E isso não requer nenhuma matemática avançada, basta uma simples regra de três.

O grande problema é que você precisa saber o tamanho da porta com precisão de alguns centímetros, para não errar muito na hora de fazer o trabalho de serralheria. Acho que é melhor usar uma régua de marceneiro ou uma trena mesmo - imagens podem estar distorcidas não-linearmente, conforme a máquina fotográfica que você estiver usando.

Vc poderia me dar uma luz nos códigos??

Me desculpem. Eu ñ estou conseguindo acompanhar a linha de pensamento.

[quote=thingol]Uma forma simples de saber a real escala é pedir que se fotografe a tal coisa juntamente com uma régua ou esquadro cujo tamanho é conhecido.

[/quote]
Mesmo isso pode ter distorções em profundidade. Dependendo da distância focal, você “achata” ( com grande angulares ) ou “alonga” ( com tele )os planos da fotografia. O ideal para se tirar uma foto real é:

  • Distância focal: 50mm ( reais );
  • Tamanho da captura: 35mm ( diagonal );
  • Foco exato.

Talvez tenha mais alguma coisa para ajudar a tirar uma fotografia real, mas com isso você garante um grau de realidade bom onde a solução do thingol funcionaria bem.

Até!

Então vamos lá.

Se algo for fotografado a partir de uma distância razoável, então eventuais distorções na imagem provocadas pela lente não irão ser muito significativas.
Assim, você pode usar um esquadro (cujo tamanho você já sabe de antemão que é 15 cm x 15 cm) e fotografá-lo juntamente com a porta (que você não sabe o tamanho). Se o esquadro aparecer na foto como tendo 150 pixels de altura e 150 pixels de largura, e a porta tiver 2200 pixels de altura e 1300 pixels de largura, então a porta deve ter 2,20 m x 1,30 m - daí a tal “regra de 3”.

Mas se você fotografar de perto, a imagem acaba ficando um pouco distorcida. Os fotógrafos sabem muito bem disso porque eles escolhem aquelas modelos magríssimas para fotografar; é que daquela distância que eles usam para fotografar uma pessoa, as lentes distorcem as imagens e tornam as pessoas “mais gordas”.
E como normalmente para serralheria você precisa fotografar as coisas de perto, é melhor usar uma trena ou outra coisa, porque a precisão necessária é maior que eventuais distorções da foto que possam ser ignoradas.

Se você quer usar a foto para fazer ORÇAMENTO, então são outros quinhentos, porque eventuais imprecisões nas medidas não irão causar problemas no serviço (obviamente, para fazer o serviço de serralheria você precisa das medidas com precisão maior, e isso só com a trena ou régua de marceneiro.)