基于opencv的图像配准程序


图像配准 opencv vc++ 程序 图像融合
资源截图
代码片段和文件信息
#ifdef _CH_
#pragma package 
#endif

#ifndef _EiC
#include 

#include “stdlib.h“
#include “string.h“ 
#include “malloc.h“ 
#include “math.h“ 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#endif

#ifdef _EiC
#define WIN32
#endif

#define NUMSIZE 2
#define GAUSSKERN 3.5
#define PI 3.14159265358979323846
/**
   Sigma of base image -- See D.L.‘s paper.
*/
#define INITSIGMA 0.5
/**
   Sigma of each octave -- See D.L.‘s paper.
*/
#define SIGMA sqrt(3)//1.6//
/**
   Number of scales per octave.  See D.L.‘s paper.
*/
#define SCALESPEROCTAVE 2
#define MAXOCTAVES 4
int     numoctaves;
/**
   Double image size before looking searching for keypoints
   Doubling finds more keypoints but takes longer. See
   D.L.‘s paper.
*/
#define CONTRAST_THRESHOLD   0.02
#define CURVATURE_THRESHOLD  10.0
#define DOUBLE_base_IMAGE_SIZE 1
#define peakRelThresh 0.8
#define LEN 128

CvMemStorage* storage = 0; // temporary storage
//Gaussian金字塔感觉用二维指针较简单
/* Data structure for a float image.
*/
typedef struct ImageSt {        /*金字塔每一层*/
  
  float levelsigma;
  int levelsigmalength;
  float absolute_sigma;
  CvMat *Level;              
} ImageLevels;
typedef struct ImageSt1 {      /*金字塔每一阶梯*/
  int row col;          /* Dimensions of image. */
  float subsample;
  ImageLevels *Octave;              
} ImageOctaves;

ImageOctaves *DOGoctaves;        //DOG pyr
ImageOctaves *mag_thresh ;
ImageOctaves *mag_pyr ;
ImageOctaves *grad_pyr ;
/* Data structure for a keypoint.  Lists of keypoints are linked
   by the “next“ field.*/
typedef struct KeypointSt 
{
  float row col; /* 反馈回原图像大小,特征点的位置 */
  float sxsy;    /* 金字塔中特征点的位置*/
  int octavelevel;/*金字塔中,特征点所在的阶梯、层次*/

  float scale orimag; /*所在层的尺度sigma主方向orientation (range [-PIPI]),以及幅值*/
  float *descrip;       /*特征描述字指针:128维或32维等*/
  struct KeypointSt *next;/* Pointer to next keypoint in list. */
} *Keypoint;
//定义特征点具体变量
Keypoint keypoints=NULL;      //用于临时存储特征点的位置等
Keypoint keyDescriptors=NULL; //用于最后的确定特征点以及特征描述字
//图像处理基本函数,其实其实可以用OPENCV的函数代替
//void NormalizeImage(CvMat *src);
CvMat * halfSizeImage(CvMat * im);     //缩小图像:下采样
CvMat * doubleSizeImage(CvMat * im);   //扩大图像:最近临方法
CvMat * doubleSizeImage2(CvMat * im);  //扩大图像:线性插值
float getPixelBI(CvMat * im float col float row);//双线性插值函数
void normalizeVec(float* vec int dim);//向量归一化  
CvMat* GaussianKernel2D(float sigma);  //得到2维高斯核
void normalizeMat(CvMat* mat) ;        //矩阵归一化
float* GaussianKernel1D(float sigma int dim) ; //得到1维高斯核
float ConvolveLocWidth(float* kernel int dim CvMat * src int x int y) ;  //在具体像素处宽度方向进行高斯卷积
void Convolve1DWidth(float* kern int dim CvMat * src CvMat * dst) ;       //在整个图像宽度方向进行1D高斯卷积
float ConvolveLocHeight(float* kernel int dim CvMat * src int x int y) ; //在具体像素处高度方向进行高斯卷积
void Convolve1DHeight(float* kern int dim CvMat * src

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      72310  2005-07-07 12:54  SIFTdataox.pgm

     文件     233055  2006-08-24 13:02  SIFTdataox.sift

     文件      10060  2006-10-25 09:15  SIFTdatacircle.pgm

     文件       1362  2006-10-25 09:42  SIFTdatacircle.sift

     文件     464954  2006-04-04 21:45  SIFTdataimg3.jpg

     文件     467808  2006-04-04 21:45  SIFTdataimg5.jpg

     文件     275111  2006-05-01 12:51  SIFTdatalandscape-a.jpg

     文件     304723  2006-05-01 12:52  SIFTdatalandscape-b.jpg

     文件      11101  2006-11-02 13:33  SIFTdata
est.png

     文件      17462  2006-11-02 14:27  SIFTdata
est2.bmp

     文件       3377  2008-06-28 19:14  SIFTSIFT.dsp

     文件     205824  2008-06-28 22:26  SIFTDebugvc60.idb

     文件     135168  2008-06-28 19:22  SIFTDebugvc60.pdb

     文件    5095848  2008-06-28 19:14  SIFTDebugSIFT.pch

     文件     500736  2008-06-28 19:22  SIFTDebugSIFT.pdb

     文件     256280  2008-06-28 19:22  SIFTDebugSIFT.ilk

     文件     225326  2008-06-28 19:22  SIFTDebugSIFT.exe

     文件      80298  2008-06-28 19:22  SIFTDebugSIFT.obj

     文件       3098  2008-06-28 19:22  SIFTSIFT.plg

     文件     464954  2006-04-04 21:45  SIFTimg3.jpg

     文件     275111  2006-05-01 12:51  SIFTlandscape_a.jpg

     文件      52579  2008-06-28 19:22  SIFTSIFT.cpp

     目录          0  2006-12-12 15:14  SIFTdata

     目录          0  2008-06-28 19:14  SIFTDebug

     目录          0  2006-12-12 15:21  SIFT

----------- ---------  ---------- -----  ----

              9156545                    25


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)