Histograma Graphics - neoneper/ClassProg3D1 GitHub Wiki
GERANDO GRÁFICOS DE HISTOGRAMA PARA ANÁLISE:
Podemos desenhar o histograma na forma de um gráfico, com os tons dos pixels na horizontal e sua quantidade na vertical. Como visto anteriormente em Histogramas, A análise do histograma nos dá uma noção de onde aplicar o algoritmo de threshold (limiarização) para obter o melhor resultado possível para a imagem. Com um gráfico fica relativamente fácil avaliar possíveis correções da imagem manualmente.
Abaixo vamos ver um exemplo onde iremos equalizar uma imagem bem ruim de contraste e então gerar gráficos do antes e depois do histograma da imagem.
Inicializando objeto que me permite trabalhar com convolução, histogramas e efeitos:
BufferedImageOperation imageOperation = new BufferedImageOperation();
Carregando imagem em tons de cinza para ser equalizada:
BufferedImage inImage =imageOperation.LoadImage("montanha.jpg");
Gerando nova imagem em tons de cinza ja Equalizada:
BufferedImage outImage = imageOperation.Equalize(inImage, BufferedImageEqualizeType.GRAYSCALE);
Gerando 2 Graficos com o histograma da imagem antes da equalização e depois da equalização.
//Histogramas antes e depois
int[] inHistogram = imageOperation.GetGrayHistogram(inImage);
int[] outHistogram = imageOperation.GetGrayHistogram(outImage);
//Imagem contendo grafico do antes e depois
BufferedImage graphics1 = imageOperation.HistogramGraphic2D(inHistogram,512,600,6);
BufferedImage graphics2 = imageOperation.HistogramGraphic2D(outHistogram,512,600,6);
//Salvando imagens
ImageIO.write(graphics1, "jpg", new File("graphyc1.jpg"));
ImageIO.write(graphics2, "jpg", new File("graphyc2.jpg"));
A Figura do Histograma Equalizado corresponde à Equalização da imagem origem e observação do novo histograma gerado após a equalização dos tons de cinza.