我想显示图像颜色 channel 的直方图。 起初我对像素的读取如下所示:
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];
}
}
我还有其他方法可以使用给定的 channel 颜色表创建图表:
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 的值。 有什么帮助吗?
最佳答案
dataset.setType(HistogramType.RELATIVE_FREQUENCY);
您可以尝试在此处设置不同的选项,看看是否有帮助?另外,如果您可以显示 channelHistogram
字段包含的内容,这可能有助于调试。
关于java - JFreeChart生成的图像直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7858411/