QT灰度直方图

int imgwidth=img->width();

int imgheight=img->height();

unsigned char* graydata =img->bits();

vector<int> hist(256);

//初始为0;

for(int i=0;i<256;i++;)

{

hist[i]=0;

}

for(int i=0;i<imgheight;i++)

{

for(int j=0;i<imgwidth;j++)

{

QColor color=img->pixelcolor(j,i);

int redcolor=color.red();

int greencolor=color.green();

int bluecolor=color.blue();

int index=(redColor+greenColor+blueColor);

hist[index]=hist[index]++;

graydata+=3;

}

}

//画图

QtCharts::QLineSeries *series=new QtCharts::QLineSeries();

for(int i=0;i<256;i++;)

{

series->append(i,hist[i]);

}

QtCharts::QChartView *chartView=new QtCharts::QChartView(ui.graphicsView_4);

chartView->chart()->addSeries(series);

series->setName("直方图");

QtCharts::QValueAxis *axisx=new QtCharts::QValueAxis();

axisx->setTitleText("像元个数");

chartView->chart()->setAxisX(axisx,series);

QtCharts::QValueAxis *axisy=new QtCharts::QValueAxis();

axisy->setTitleText("灰度值");

chartView->chart()->setAxisY(axisY,series);

charView->resize(ui.graphicsView_4->width(),ui.graphicsView_4->heigtht());

charView->show();

原文地址:https://www.cnblogs.com/WordHorizon/p/14049310.html