Histograma Graphics - neoneper/ClassProg3D1 GitHub Wiki

GERANDO GRÁFICOS DE HISTOGRAMA PARA ANÁLISE:

Ver Script deste Exercicio:

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.

Equalização