Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
Erick Oliveira Silva

Java preciso obter uma matriz a partir de uma imagem

Recommended Posts

Pessoal, estou precisando de uma imensa ajuda. Estou fazendo um trabalho e preciso analisar imagens de gráficos em que não possuo os pares ordenados dos pontos que geram uma curva. Sei que é possivel analisar a imagem a partir dos seus pixels em que o conjunto deles será uma matriz e cada posição é um pixel com a cor que está na imagem. Alguém sabe de algum codigo? Sei que é possivel fazer no matlab (PAGO) mas preciso fazer em um software free porque senão, não poderei colocar no trabalho. 

Alguém poderia ajudar?

No caso, eu tenho isso:

BufferedImage img = null;
try {
img = ImageIO.read(new File("c:\\Temp\\teste.bmp"));
for (int x = 0; x < img.getWidth(); x++) {
for (int y = 0; y < img.getHeight(); y++) {
Color cor, novacor;
cor = new Color (img.getRGB(x, y));
int r = cor.getRed();
int g = cor.getGreen();
int b = cor.getBlue();
if (r == 0 && g == 0 && b == 0) {
novacor = new Color(255, 0, 0);
} else {
novacor = new Color(r, g, b);
}
img.setRGB(x, y, novacor.getRGB());
}
}
File outputfile = new File("C:\\Temp\\saida.bmp");
ImageIO.write(img, "bmp", outputfile);
} catch (Exception e) {
System.out.println(e.getMessage());
} 


Só que eu não quero alterar a cor do que está em preto.

O que eu quero exatamente é: Analisar uma imagem (uma curva gerada por pontos (não tenho esses pontos)) e a partir dela, me retornar os valores de cada cor de cada pixel. Eu sou leigo em Java, mas preciso muito de ajuda. Esse código ai foi o que encontrei de semelhante na net, porém nao tem a parte que justamente quero.
Agradeço a ajuda.
OBS: PODE SER EM OUTRAS LINGUAGENS

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem uma coisa bem estranha nesse código, esse else parece meio desnecessário e redundante...

 

Bom vamos ver se eu entendi, você que saber o valor de cada ponto na curva certo ? primeiro, você tem certeza da precisão desses gráficos ? Os dados obtidos podem ser diferentes dos que originalmente botados lá, ainda mais dependendo  da qualidade da imagem, ok ?

 

a não ser que isso tenha que ser um processo automatizado, não vejo o porquê disso presisar de programação nenhuma, se você tiver a escala do gráfico apenas abra a imagem no paint que ele mostra a posição do mouse em pixels, daí uma calculadora resolve o seu problema.

 

agora p fazer isso com várias imagens e guardar o valor de cada ponto (pixel) já dá mais trabalho, no código acima ele já percorre a imagem como uma matriz, o que você precisa fazer é percorrer de cima para baixo em cada linha (y) verificar cada ponto (x) até tocar a curva (muito mais fácil se for uma cor específica) daí você pega a posição (x,y), usa a escala e descobre o valor, basicamente isso.

 

Claro que tem os agravantes, você tem que descobrir o ponto (0,0) da imagem o que pode ser meio complicado se as imagens não seguirem o mesmo padrão, se usar mais de uma cor ou se tem mais de uma curva...parando p pensar isso é difícil p caramba, tem certeza que já n tem alguém por aí que já fez isso ?

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×