opencv一维直方图

原创 2013年12月03日 15:55:12

//一维 灰度 直方图 


#include <iostream>
#include <cv.h>
#include <highgui.h>
#include <cxcore.h>


using namespace std;




int main( )
{
//一维 灰度 直方图 
IplImage * src= cvLoadImage("1.jpg");
IplImage* gray_plane = cvCreateImage(cvGetSize(src),8,1);
cvCvtColor(src,gray_plane,CV_BGR2GRAY);


int hist_size = 256;    //直方图尺寸
int hist_height = 256;
float range[] = {0,255};  //灰度级的范围
float* ranges[]={range};
//创建一维直方图,统计图像在[0 255]像素的均匀分布
CvHistogram* gray_hist = cvCreateHist(1,&hist_size,CV_HIST_ARRAY,ranges,1);
//计算灰度图像的一维直方图
cvCalcHist(&gray_plane,gray_hist,0,0);
//归一化直方图
cvNormalizeHist(gray_hist,1.0);


int scale = 2;
//创建一张一维直方图的“图”,横坐标为灰度级,纵坐标为像素个数(*scale)
IplImage* hist_image = cvCreateImage(cvSize(hist_size*scale,hist_height),8,3);
cvZero(hist_image);
//统计直方图中的最大直方块
float max_value = 0;
cvGetMinMaxHistValue(gray_hist, 0,&max_value,0,0);


//分别将每个直方块的值绘制到图中
//OPENCV坐标系采用  顶——左结构,即坐标系原点在左上方
for(int i=0;i<hist_size;i++)
{
float bin_val = cvQueryHistValue_1D(gray_hist,i); //像素i的概率
int intensity = cvRound(bin_val*hist_height/max_value);  //要绘制的高度
cvRectangle(hist_image,
cvPoint(i*scale,hist_height-1),
cvPoint((i+1)*scale - 1, hist_height - intensity),
CV_RGB(255,255,255));  
}
cvNamedWindow( "GraySource", 1 );
cvShowImage("GraySource",gray_plane);
cvNamedWindow( "Histogram", 1 );
cvShowImage( "Histogram", hist_image );


cvWaitKey(0);
}

直方图 一维 opencv vs2010

  • 2013年04月19日 19:08
  • 8.95MB
  • 下载

OpenCV学习---绘制直方图(一维、H-S、RGB)

直方图 简单的说,直方图就是对数据进行统计,将统计值组织到一系列的事先定义好的的 bin 中, bin 的数据是从数据中计算出的特征统计量,这些数据可以是梯度,方向,色彩,或者其它特征。无论如何,直方...

OpenCV 计算图像一维直方图

// HistogramCalculate.cpp : 定义控制台应用程序的入口点。 //计算给定图像区域的直方图 #include "stdafx.h" #include #inc...

【OpenCV】直方图——一维

关于直方图的基本概念坛子里介绍的很多,能用代码表示尽量不多话!

opencv3 绘制一维直方图-灰度直方图的绘制

#include #include #include using namespace cv; using namespace std; int main() { Mat srcImage = i...

opencv3 计算一维直方图-灰度直方图的计算

#include #include #include using namespace cv; using namespace std; int main() { Mat srcImage = i...

【拜小白opencv】44-灰度直方图(一维直方图)calcHist()函数、minMaxLoc()函数、normalize()函数

直方图(Histogram)又称柱状图、质量分布图,是一种统计报告图。直方图由一系列高度不等的纵向条纹或线段表示数据分布的情况。一般用横轴表示数据类型,纵轴表示分布情况。在图像处理上,直方图是图像信息...

opencv 灰度直方图 一维直方图

typedef struct CvHistogram { int type; CvArr* bins; float thresh[CV_MAX_DIM][2]; ...

opencv3 绘制一维直方图-灰度直方图的绘制-柱状图

#include #include #include using namespace cv; using namespace std; int main() { Mat srcImage = i...

图像检索:一维直方图+欧几里得距离+flann+KNN

图像检索--一维颜色直方图
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:opencv一维直方图
举报原因:
原因补充:

(最多只允许输入30个字)