Processar imagem

olá… preciso de uma orientação:

carrego uma imagem binaria (preta com fundo branco) para o java. essa imagem é semelhante a um rio e seus afluentes. preciso calcular a distância de um ponto a outro. Já li algumas coisas sobre a API Raster e JAI, só que a jai só tem material em ingles.

como posso achar algum material sobre processamento de imagens voltada a esse meu objetivo?
ou algum código q me de uma orientação?

agradeço a ajuda!

Perguntas:

  1. Você vai clicar na imagem em 1 ponto, e depois clicar em outro, fazendo ele calcular a distância?
  2. Sua imagem tem “escala” (1cm = 1km) ou vc quer calcular a distância em cm msmo?

Seja mais específico…

[quote=pedroroxd]Perguntas:

  1. Você vai clicar na imagem em 1 ponto, e depois clicar em outro, fazendo ele calcular a distância?
  2. Sua imagem tem “escala” (1cm = 1km) ou vc quer calcular a distância em cm msmo?

Seja mais específico…[/quote]

OK.

A imagem não será clicada. Terei que identificar os pontos: Imagina uma linha traçada que em um certo ponto se divide em 2 ou mais linhas (Bifurcação). Cada bifurcação é o ponto que terei que identificar. Isso ocorrerá várias vezes, tendo várias bifurcações. A linha é de uma expessura padrão, quando essa expessura tiver mais pixels agrupados do que o normal, se enquadraria como um ponto de bifurcação! Assim eu imaginei para identificar os pontos.
A escala, terei que definir eu mesmo, vai depender de alguns fatores!!

Esse trabalho é um mapa importado (já corrigido também) pelo ArcGis, programa de processamento geográfico, onde recebo a imagem de um Rio e seus afluentes. O principio de tudo é identificar os pontos de bifurcações e definir uma distância entre eles!
Essa imagem será enquadrada em um tamanho padrão, para testar esses processos, mas a idéia é dar a resposta em km de distância.
Alguma idéia?

[quote]
Alguma idéia?[/quote]

achei um código q poderia ajudar:

package data.info;   
     
import java.awt.image.SampleModel;   
import java.io.IOException;   
import javax.media.jai.JAI;   
import javax.media.jai.PlanarImage;   
import javax.media.jai.iterator.RectIter;   
import javax.media.jai.iterator.RectIterFactory;   
  
public class ProcessPixelsUsingRectIterator   
   {   
   public static void main(String[] args) throws IOException   
     {   
     if (args.length != 1)   
       {   
        System.err.println("Usage: java data.info.ProcessPixelsUsingRectIterator image");   
        System.exit(0);   
        }   
  
      PlanarImage image = JAI.create("fileload", args[0]);   
      int width = image.getWidth();   
      int height = image.getHeight();   
      SampleModel sm = image.getSampleModel();   
      int nbands = sm.getNumBands();   
      if (nbands != 3)   
        {   
        System.err.println("Desculpe, esta aplicação só trabalha com imagens RGB.");   
        System.exit(1);   
        }   
  
      long startTime = System.currentTimeMillis();   
      int[] pixel = new int[nbands];   
      RectIter iterator = RectIterFactory.create(image,null);   
      int counter = 0;   
  
      for(int h=0;h<height;h++)   
        for(int w=0;w<width;w++)   
          {   
          iterator.getPixel(pixel);   
          iterator.nextPixel();   
          if (isWhite(pixel[0],pixel[1],pixel[2])) counter++;   
          }   
  
      long endTime = System.currentTimeMillis();   
      System.out.println("Existem "+counter+" pixels broncos na imagem.");   
      System.out.println("Foi processada em: "+((endTime-startTime)/1000.)+" segundos.");   
      }   
   
   private static boolean isWhite(int r,int g,int b)   
      {   
      return ((r == 255) && (g == 255) && (b == 255));   
      }   
        
    }  

só q esse código soma os pixels branco de uma maneira geral…
eu preciso seguir uma linha tracejada para definir quantos pixels existem do ponto Origem ao ponto Destino…
Alguma idéia???