OpenCV统计应用-CvHistogram直方图资料~~~(转)

本文介绍了OpenCV中的CvHistogram结构用于计算和绘制直方图的方法,包括一维直方图的实现和二维直方图的计算。通过示例代码展示了如何设置区块、上下界,并使用CvHistogram进行直方图统计。此外,文章还讨论了CvHistogram数据结构的特性,如使用LUT(查找表)方法以及在多维直方图中的内存管理问题。
摘要由CSDN通过智能技术生成
 

OpenCV统计应用-CvHistogram直方图资料

CvHistogram可以提供直方圖的計算,並且可以支援多個維度的直方圖設計,但是在繪製直方圖圖形的時候就需要自己用繪圖函式來繪製,CvHistogram算是一個比較複雜的資料結構,由於它在維度小於二的可以用密集的資料結構,CvMatND來設計,可以當它的直方圖維度大於二的時候,就必須要用到稀疏矩陣,CvSparseMat的方式,下面就是用CvHistogram結構計算一維直方圖的例子

CvHistogram一維設計
#include <cv.h>
#include <highgui.h>
#include <stdio.h>


int HistogramBlock = 256;
float HistogramRange1[2]={ 0,255};
float *HistogramRange[1]={ &HistogramRange1[0]};

int main()
{
     IplImage *Image1;
     CvHistogram *Histogram1;
     IplImage *HistogramImage1;

     Image1=cvLoadImage("Riverbank.jpg",0);

     Histogram1 = cvCreateHist(1,&HistogramBlock,CV_HIST_ARRAY,HistogramRange);
     HistogramImage1 = cvCreateImage(cvSize(256,300),8,3);
     HistogramImage1->origin=1;

     cvCalcHist(&Image1,Histogram1);

     printf("type is : %d/n",Histogram1->type);
     printf("Low Bound is : %.f/n",Histogram1->thresh[0][0]);
     printf("Up Bound is : %.f/n",Histogram1->thresh[0][1]);
     printf("The Block is : %d/n",((CvMatND *) Histogram1->bins)->dim[0].size);

     printf("/nGray Level Values:/n");
    for(int i=0;i<HistogramBlock;i++)
     {
         printf(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值