// 直方图.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include<iostream>
using std::endl;
using std::cout;
int HistogramBins = 256;//直方图的bin数,也就是用来存储每一个灰度级的bin
float HistogramRange1[2]={0,255};//显示直方图的范围
float *HistogramRange[1]={&HistogramRange1[0]};//由于建立的是一维直方图,所以只有一个范围。
int _tmain(int argc, _TCHAR* argv[])
{
IplImage *image=cvLoadImage("lena.jpg",0);
CvHistogram *histogramImage;
histogramImage=cvCreateHist(1,&HistogramBins,CV_HIST_ARRAY,HistogramRange);//建立直方图,1为维数,HistogramBins为直方图的bins数,CV_HIST_ARRAY为稠密矩阵,HistogramRange为直方图范围
cvCalcHist(&image,histogramImage); //计算image的直方图到histogramImage
for(int i=0;i<HistogramBins;i++)
{
cout<<((CvMatND *) histogramImage->bins)->data.fl[i]<<endl;//提取直方图的每一个灰度级,并显示。
}
system("PAUSE");
return 0;
}