由JFreeChart生成的图像直方图

时间:2011-10-22 08:52:24

标签: java jfreechart histogram

我想显示图像颜色通道的直方图。 起初我的像素读数如下:

   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 个答案:

答案 0 :(得分:1)

dataset.setType(HistogramType.RELATIVE_FREQUENCY);

您可以尝试在此处设置不同的选项,看看它是否有帮助?此外,如果您可以显示可能有助于调试的channelHistogram字段。