Гистограмма изображения, сгенерированная JFreeChart - PullRequest
1 голос
/ 22 октября 2011

Я хочу отобразить гистограмму цветовых каналов изображения.Сначала мое чтение пикселей выглядит следующим образом:

   for(int i=0; i<width; i++)
        for(int j=0; j<height; j++) {
          data=writeableRaster.getDataElements(i, j, null);
          red=colorModel.getRed(data);
          green=colorModel.getGreen(data);
          blue=colorModel.getBlue(data);
          rgb=(red+green+blue)/3;
          ++redL[red];
          ++greenL[green];
          ++blueL[blue];
          ++rgbL[rgb];
        }
    }

У меня также есть дополнительный метод для создания диаграммы с заданной таблицей цветов канала:

        int number = channelHistogram.length;
        HistogramDataset dataset = new HistogramDataset();
        dataset.setType(HistogramType.RELATIVE_FREQUENCY);
        dataset.addSeries("Hist",channelHistogram,number);
        String plotTitle = "Hist"; 
        String xaxis = "number";
        String yaxis = "value"; 
        PlotOrientation orientation = PlotOrientation.VERTICAL; 
        boolean show = false; 
        boolean toolTips = false;
        boolean urls = false; 
        JFreeChart chart = ChartFactory.createHistogram( plotTitle, xaxis, yaxis, 
                 dataset, orientation, show, toolTips, urls);

Но диаграмма отображается неправильно.Это означает, что на оси Y есть "низкие" значения (от ~ 0 до 0,09), а на оси X нет значений из области от 0 до 255. Любая помощь?

1 Ответ

1 голос
/ 22 октября 2011
dataset.setType(HistogramType.RELATIVE_FREQUENCY);

Можете ли вы попробовать установить здесь другие параметры и посмотреть, поможет ли это?Также, если вы можете показать, что содержит поле channelHistogram, это может быть полезно для отладки.

...