反响投影图
来源:互联网 发布:卡片手机淘宝 编辑:程序博客网 时间:2024/04/28 15:27
转自:http://blog.163.com/thomaskjh@126/blog/static/370829982010112810358501/
反向投影图
2010-12-28 22:25:51| 分类: OpenCV学习 |举报|字号 订阅
图像的反向投影图是用输入图像的某一位置上像素值(多维或灰度)对应在直方图的一个bin上的值来代替该像素值,所以得到的反向投影图是单通的。用统计学术语,输出图像象素点的值是观测数组在某个分布(直方图)下的概率。
反向投影图 - 十三月de天空 - 十三月de天空
其中b(xi)表示在位置xi上像素对应的直方图第b(xi)个bin,直方图共m个bin,qu表示第u个bin的值。
还是以例子说明
(1)例如灰度图像如下
Image=
0 1 2 3
4 5 6 7
8 9 10 11
8 9 14 15
(2)该灰度图的直方图为(bin指定的区间为[0,3),[4,7),[8,11),[12,16))
Histogram=
4 4 6 2
(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;
}
}
0 0
- 反响投影图
- 投影图
- 反向投影图
- 反向投影图
- 反向投影图
- 反向投影图
- 反向投影图
- 反向投影图
- 反向投影图
- camshift---反向投影图
- Meanshift 反向投影图
- 反向投影图的理解
- 反向投影图calcBackProject
- 浅谈gmail的反响
- DifferThinker 不同反响
- 反向投影图calcBackProject的用法
- 反响百度收录的原因
- 中国经济刺激计划引发市场热烈反响
- Socket心跳包机制
- POJ 1038 状态压缩dp
- VC下sql+ado数据库v_strTemp.vt == VT_NULL判断的问题
- Android如何防止apk程序被反编译
- 制作零件
- 反响投影图
- 如何判断Activity,Service,App是否在运行?
- 常见算法思路总结
- CSS强制换行和禁止换行代码
- matlab2013设置vs2013编译器
- 手动13 magento cdn加速插件
- 程序员技术练级攻略
- Windows操作系统结构
- 【MySQL】Windows中MySQL安装全指南