1
我想显示图像颜色通道的直方图。 起初我像素的阅读的样子:JFreeChart生成的图像直方图
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的值。 任何帮助?
检查数组大小是否等于256的内部方法。值类似于:'7545.0 2939.0 3570.0 3266.0 2861.0 2525.0'。 我试过使用其他其他HistogramType选项,但也有类似的效果。 – bontade
假设您提供双数组为{1,5,9,3,5}直方图数据集将其解释为1-5频率4 5-10频率1,并且它会相应地显示两个具有相应高度的小节。如果您不想按照阵列绘制高度为1,5,9 ...的酒吧,那么使用每个点添加为新系列的条形图。 –
谢谢@AKJ。现在我正在使用BarChart – bontade