打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
反向投影图

(3)反向投影图

Back_Projection=

  4    4    4    4

  4    4    4    4

  6    6    6    6

  6    6    2    2

例如位置(0,0)上的像素值为0,对应的bin[0,3),所以反向直方图在该位置上的值这个bin的值4


测试代码如下:

#include <iostream>

using namespace std;

#include <iomanip>

#include <highgui.h>

#include <cv.h>

 

int main()

{

         uchar data[]={0,1,2,3,4,5,6,7,8,9,10,11,8,9,14,15};     //图像数据

         CvMat mat=cvMat(4,4,CV_8UC1,data);

 

         IplImage g_img;      //灰度图

         cvGetImage(&mat,&g_img);

 

         //打印图像数据

         cout<<"Image="<<endl;

         for(int i=0;i<g_img.height;i++)

         {

                   uchar* ptr=(uchar*)(g_img.imageData+i*g_img.widthStep);

                   for(int j=0;j<g_img.width;j++)

                   {

                            cout<<setw(3)<<setprecision(2)<<(int)ptr[j]<<"  ";

                   }

                   cout<<endl;

         }

 

         //计算图像直方图

         IplImage* imgs[]={&g_img};

         int g_bin=4;

         int size[]={g_bin};

         float g_ranges[]={0,4,8,12,16};

         float* ranges[]={g_ranges};

         CvHistogram* hist=cvCreateHist(1,size,CV_HIST_ARRAY,ranges,0);

         cvCalcHist(imgs,hist);

 

         //打印图像直方图数据

         cout<<"Histogram="<<endl;

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

         {

                   cout<<setw(3)<<setprecision(2)<<*cvGetHistValue_1D(hist,i)<<"  ";

         }

         cout<<endl;

 

         //计算反向投影图

         IplImage* back_project=cvCreateImage(cvGetSize(&g_img),g_img.depth,1);

         cvCalcBackProject(imgs,back_project,hist);

 

         //打印反向投影图数据

         cout<<"Back_Projection="<<endl;

         for(int i=0;i<back_project->height;i++)

         {

                   uchar* ptr=(uchar*)(back_project->imageData+i*back_project->widthStep);

                   for(int j=0;j<back_project->width;j++)

                   {

                            cout<<setw(3)<<setprecision(2)<<(int)ptr[j]<<"  ";

                   }

                   cout<<endl;

         }

 

}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
OpenCV读取图片像素值
OpenCV学习C++接口:图像遍历+像素压缩
简单的输入输出
93 f0312
纯虚函数和抽象类CPP
智能指针shared
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服