• 大小: 7.65MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-14
  • 语言: C/C++
  • 标签: SIFT  图像拼接  

资源简介

基于C语言实现的SIFT算法,实现SIFT图像特征提取,以及基于SIFT的图像拼接。能直接运行

资源截图

代码片段和文件信息


#include “stitch.h“
#include “io.h“
#include “time.h“
#include 
#include 

#define MaxPics 45
#define MaxOut 3

#pragma  comment(lib“ANN.lib“)

int Color[3][8] = { 20 20  100 100 150150 230230
100150 150 230 20 230 100 20
20 150 230 20  150 230 100 100};


double FOCAL = 680;
double HH = 2;
int IntialImageID = 0;
double LOWRATIO = 0.0;//0.07; //0.095;
int MODE = 0;
int Manuel = 0;
double ManuelShift = 0.1259;//0.125920;
int filenum;
void buildKDTree(IplImage *inImg  vector  *keypointsANNkd_tree **kdTree);
void findNextImage(IplImage *inImg[MaxPics]ANNkd_tree* kdTree[MaxPics]vector  keypoints[MaxPics]int nowIDint &NextID int Flag[MaxPics]CvMat *bestHomo);
void seqNextImage(IplImage *inImg[MaxPics]ANNkd_tree* kdTree[MaxPics]vector  keypoints[MaxPics]int nowIDint &NextIDCvMat *bestHomo);
void findTargetHomo(IplImage *inImg[MaxPics]ANNkd_tree* kdTree[MaxPics]vector  keypoints[MaxPics]int nowIDint NextIDCvMat *bestHomo);
void seqNextImage2(IplImage *inImg[MaxPics]ANNkd_tree* kdTree[MaxPics]vector  keypoints[MaxPics]int nowIDint &NextIDint ind[MaxPics]CvMat *bestHomo);
int readDir(char *pathchar fnames[MaxPics][100]);

int readDir(char *pathchar fnames[MaxPics][100]) 

   struct _finddata_t c_file;
   int hFile;
   filenum=0;

   char fullpath[100];

   sprintf(fullpath“%s\\*.jpg“path);
   printf(fullpath);
   // Find first .c file in current directory 
   if( (hFile = _findfirst( fullpath &c_file )) == -1L )
      printf( “No *.jpg files in current directory %s!\n“fullpath);
   else
   {
      printf( “Listing of .jpg files in %s directory\n\n“path);
      printf( “RDO HID SYS ARC  FILE                  SIZE\n“ ‘ ‘ );
      printf( “--- --- --- ---  ----                  ----\n“ ‘ ‘ );
  do {
//  char buffer[30];
         printf( ( c_file.attrib & _A_RDONLY ) ? “ Y  “ : “ N  “ );
         printf( ( c_file.attrib & _A_SYSTEM ) ? “ Y  “ : “ N  “ );
         printf( ( c_file.attrib & _A_HIDDEN ) ? “ Y  “ : “ N  “ );
         printf( ( c_file.attrib & _A_ARCH )   ? “ Y  “ : “ N  “ );
         //ctime_s( buffer _countof(buffer) &c_file.time_write );
         printf( “ %-15s  %9ld\n“c_file.name c_file.size );
 sprintf(fnames[filenum]“%s\\%s“pathc_file.name);
 filenum++;
      } while( _findnext( hFile &c_file ) == 0 );
      _findclose( hFile );
   }
return filenum;


int main(int argc char **argv){
argv[0]=“stitch.exe“;
argv[1]=“test114“;
IplImage *inImg[MaxPics];
IplImage *inImgc[MaxPics];

vector  keypoints[MaxPics];
ANNkd_tree* kdTree[MaxPics];
//////readFile

char fdir[MaxPics][100];
filenum = readDir(argv[1]fdir);

if(argc>2){
  MODE = atoi(argv[2]);
  if(MODE == 1){
  if(argc>3){
Manuel = atoi(argv[3]);                 //数据类型转换
printf(“Mode=%d Manuel=%d“MODEManuel);
if(argc>4){

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

     文件     397312  2006-04-12 21:23  sift\ANN.dll

     文件        533  2006-04-12 00:20  sift\main.dsw

     文件       1093  2008-09-01 09:54  sift\main.plg

     文件        897  2006-04-15 16:10  sift\main.sln

    ..A..H.      8704  2007-04-24 12:12  sift\main.suo

     文件       4692  2006-04-30 20:36  sift\main.vcproj

     文件     140288  2008-09-02 13:19  sift\main.ncb

     文件      34756  2005-05-04 05:03  sift\ANN.h

     文件       8340  2005-05-04 05:03  sift\ANNperf.h

     文件       6369  2005-05-04 05:03  sift\ANNx.h

     文件       1831  2008-01-01 11:24  sift\stitch.h

     文件     137371  2008-09-02 13:13  sift\panorama_1.jpg

     文件    1776423  2008-01-10 11:05  sift\test1.rar

     文件       3801  2008-04-21 15:38  sift\main.dsp

     文件      34756  2005-05-04 05:03  sift\ANN\ANN.h

     文件       8340  2005-05-04 05:03  sift\ANN\ANNperf.h

     文件       6369  2005-05-04 05:03  sift\ANN\ANNx.h

     文件     397312  2006-04-12 21:23  sift\Debug\ANN.dll

     文件     843824  2008-05-04 16:08  sift\Debug\cv100.dll

     文件    1011764  2006-10-18 21:49  sift\Debug\cxcore100.dll

     文件      79124  2008-05-04 16:22  sift\Debug\libguide40[1].dll.zip

     文件     184320  2004-03-15 19:52  sift\Debug\libguide40.dll

     文件     626741  2006-10-18 21:50  sift\Debug\highgui100.dll

     文件     230400  2008-09-02 13:12  sift\Debug\vc60.idb

     文件     184320  2008-09-01 09:54  sift\Debug\vc60.pdb

     文件          0  2008-09-01 09:54  sift\Debug\main.sbr

     文件          0  2008-09-01 09:19  sift\Debug\sift.sbr

     文件          0  2008-09-01 09:19  sift\Debug\stitch.sbr

     文件     902144  2008-09-01 09:54  sift\Debug\main.pdb

     文件     122420  2008-05-18 20:52  sift\Debug\panorama_1.jpg

............此处省略43个文件信息

评论

共有 条评论