基于块的反射投影

#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
#include <iostream>
#include "function.h"
CvHistogram* histogram2(IplImage* src,int HSize,int SSize) //返回归一化的histogram
{
IplImage* SrcH=cvCreateImage(cvGetSize(src),8,1);
IplImage* SrcS=cvCreateImage(cvGetSize(src),8,1);
//分割HSV
cvSplit(src,SrcH,SrcS,NULL,NULL);
//创建histogram
CvHistogram* hist;
int dims=2;
int size[]={HSize,SSize};
float RangeH[]={0,180};
float RangeS[]={0,360};
float* ranges[]={RangeH,RangeS};
hist=cvCreateHist(dims,size,CV_HIST_ARRAY,ranges);
//计算histogram
IplImage* image[]={SrcH,SrcS};
cvCalcHist(image,hist);
return hist;
}
int BackProjection(int argc,char** argv) //projection:投射
{
IplImage* temp=cvLoadImage("e:\\picture\\333.jpg");
CvHistogram* hist=histogram(temp,30,32);
IplImage* src=cvLoadImage("e:\\picture\\3.jpg");
IplImage* ImageH=cvCreateImage(cvGetSize(src),8,1);
IplImage* ImageS=cvCreateImage(cvGetSize(src),8,1);
IplImage* SrcHSV=cvCreateImage(cvGetSize(src),8,3);
cvCvtColor(src,SrcHSV,CV_BGR2HSV);
cvSplit(SrcHSV,ImageH,ImageS,NULL,NULL);
IplImage* image[]={ImageH,ImageS};
//IplImage* BackProjectResult=cvCreateImage(cvGetSize(src),8,1);
IplImage* BackProjectResult=cvCreateImage(cvSize(src->width-temp->width+1,src->height-temp->height+1),IPL_DEPTH_32F,1); //结果的类型要和输入图像具有同样类型,并且hist注意不要归一化,否则所有的值会被四舍五入为0
cvCalcBackProjectPatch(image,BackProjectResult,cvSize(temp->width,temp->height),hist,CV_COMP_CORREL,1);
double max=0;
double min=0;
cvMinMaxLoc(BackProjectResult,&min,&max);
std::cout<<"max:"<<max<<"min:"<<min<<std::endl;
cvNamedWindow("src");
cvNamedWindow("temp");
cvNamedWindow("BackProjectResult");
cvShowImage("src",src);
cvShowImage("temp",temp);
cvShowImage("BackProjectResult",BackProjectResult);
cvWaitKey(0);
return 0;
}

基于块的反射投影

时间: 2024-10-19 03:23:30

基于块的反射投影的相关文章

纹理合成之《基于块缝合纹理合成算法》

本文主要阅读了张岩博士的博士论文<纹理合成技术的研究及其应用>和作者的原文<Image Quilting for Texture Synthesis and Transfer>. 先上效果:  改图701*501像素大小,在试验中,将其截图为400*400,然后4*4铺开,效果为  可以看出,还是结合得很好的. 该方法很简单,主要是两部分: 第一部分找出最小重合误差,算出重合起始点. 第二部分找出最小路径,算出两者的分解. 我是从pudn上找的程序,稍加修改了一下,感兴趣的可以到百

基于块流协议保证音频优先发送

在流媒体发布客户端同时传送音频.视频至流媒体服务器时,一帧视频的数据量通常远大于一帧音频的数据量,在网络质量差时,传输一帧视频的质量耗时过长,通过采用块流协议,可以将视频分块发送,并在发送视频块前检测一下是否有音频要发送,若有立即穿插发送音频块,然后接着发送后续视频块(当视频帧堆积到一定程度为保实时性主动丢弃并立即将下一个待编码图像编码成I帧),流媒体服务器比较输入媒体流与每个输出流的块长度,若两者长度不致要先缓存块数据直到接受到完整的音.视频帧然后按输出媒体流块长度重新分块.流化处理.转发给相

利用Openfiler配置基于文件系统的网络存储

一.Openfiler简介 Openfiler是一个操作系统,其提供基于文件的网络附加存储和基于块的存储区域网络功能. Openfiler支持的网络协议包括:NFS,SMB/CIFS,HTTP/WebDAV,FTP和iSCSI. Openfiler支持的网络目录包括:NIS,LDAP(支持SMB/CIFS密码加密),Active Directory(本地和混合模式),基于Windows NT的域控制器和Hesiod.认证协议包括Kerberos 5. Openfiler支持基于卷的分区技术:如本

linux块设备的IO调度算法和回写机制

************************************************************************************** 參考: <Linux内核设计与实现> http://laokaddk.blog.51cto.com/368606/699028/ http://www.cnblogs.com/zhenjing/archive/2012/06/20/linux_writeback.html *************************

基于预测方法的高光谱图像压缩研究现状

Memon提出预测树的概念,同时利用前向自适应技术与后向自适应技术去除多光谱图像的谱间相关性. []mon N D,Sayood K,Magliveras S S.Lossless Compression of Multispectral Image Data[J].IEEE Transactions on Geoscience and Remote Sensing,1994,32(2):282-289. 张荣等人在预测树的概念上提出了一种侧邻域最小绝对权值预测树构造方法,极大地简化了预测树的构

OpenCV Using Python——应用统计肤色模型和相对于块原点能量的肤色分割

应用统计肤色模型和相对于块原点能量的肤色分割 1. 肤色分割简介 (1)统计肤色模型简介 在前面的文章中,我们利用训练数据已经成功计算出训练数据的后验概率P(Cs|v),即已知像素值判断属于肤色类的概率.同时我们获得后验概率大于不同阈值的肤色掩膜.但之前并没有给出统计肤色模型的肤色检测效果,因为测试效果取决于训练数据对应像素所在的RGB颜色空间分布.本篇将给出统计肤色模型的应用效果,同时改进单一使用模型的缺陷. (2)块原点能量简介 图像中被分割出来的肤色块后面统称为块.根据统计肤色模型在一幅图

基于ARM核AT75C220在指纹识别系统中应用

纹识别技术近年来逐渐成熟,在门禁.安防和金融等方面得到了越来越广泛的应用.典型的指纹识别系统是以指纹传感器和DSP处理器为核心构成.指纹传感器采集指纹图像,DSP处理器实时实现指纹识别算法.同时,通常的指纹识别系统还具有较强的通信能力,除了具有RS485通信外,高档的指纹识别系统还要求具有以太网接口和Internet连接能力.Atmel公司新推出的智能互联网芯片AT75C220集成了ARM内核.DSP协处理器以及以太网MAC接口,用AT75C220和指纹传感器结合可构成高性能的指纹识别系统. 1

h.264 去块滤波

块效应及其产生原因 我们在观看视频的时候,在运动剧烈的场景常能观察到图像出现小方块,小方块在边界处呈现不连续的效果(如下图),这种现象被称为块效应(blocking artifact). 首先我们需要搞清楚块效应产生的原因.h.264在编码过程中对像素残差进行了DCT变换,变换后得到的DCT系数是与每个像素都相关的,这些系数代表了被变换数据的基础色调与细节.h.264在DCT变换后对DCT系数进行了量化,量化能有效去除相邻像素间的空间冗余,也就是说会抹去元素数据的部分细节.比较理想的情况是量化抹

块设备

作者:徐老师,华清远见嵌入式学院讲师. 块设备基本概念 系统中能够随机访问固定大小数据片的设备被称之为块设备.这些数据片就称作块.块设备文件一般都是以安装文 件系统的方式使用,这也是块设备通常的访问方式.块设备的方式访问方式是随机的,也就是可以在访问设备时,随意的从一个位置跳转到另外一个位置.块设备的 访问位置必须能够在介质的不同区间前后移动.所以事实上内核不必提供专门的子系统来管理字符设备,但对于块设备的管理就必须要有一个专门的提供服务的子系 统. 块设备与字符设备的区别 块设备与字符设备的区