手指识别全套代码和算法说明-论文


手指识别,里面含有全部源代码基于opencv,有论文等,可以正确2008下面编译,运行,具体算法,看里面的论文
资源截图
代码片段和文件信息
#include 
#include 
#include “cv.h“
#include “highgui.h“
#include “Capture/Capture.h“

#define NUM_CHESS_POINT 48
#define NUM_CHESS_ROW   6
#define NUM_CHESS_COL   8
#define CHESS_CORNER_SIZE_MM    28.8
#define MAX_CALIBRATION_POINT   1000

Capture     gCapture;
IplImage *  frame = 0;
IplImage *  gray = 0;

bool    fChessboardFound = false;

// Camera Calibration Data
int     calib_frame_count = 0;
float   calib_obj_pt[MAX_CALIBRATION_POINT][3];
float   calib_img_pt[MAX_CALIBRATION_POINT][2];
int     chess_count = 0;
CvPoint2D32f chess_pt[NUM_CHESS_POINT];

// Camera Calibration Matrix
float   camera_intrinsic[3][3];
float   camera_distortion[4];

void TakeCalibrationframe()
{
    if ( fChessboardFound )
    {
        int k = NUM_CHESS_POINT * calib_frame_count;

        for ( int i = 0 ; i < NUM_CHESS_ROW ; i ++ )
        {
            for ( int j = 0 ; j < NUM_CHESS_COL ; j ++ )
            {
                // object coordinates
                calib_obj_pt[k][0] = (float)CHESS_CORNER_SIZE_MM * j;
                calib_obj_pt[k][1] = (float)CHESS_CORNER_SIZE_MM * i;
                calib_obj_pt[k][2] = 1;

                // image coordinates
                calib_img_pt[k][0] = chess_pt[NUM_CHESS_COL * i + j].x;
                calib_img_pt[k][1] = chess_pt[NUM_CHESS_COL * i + j].y;

                k ++;
            }
        }

        calib_frame_count ++;

        printf( “# calibration frame: %d
“ calib_frame_count );
    }
}

void SaveCalibration()
{
    FILE *fp = fopen(“calibration.txt“ “wt“);
    if (fp == NULL) return;

    fprintf(fp “%f “ camera_intrinsic[0][0]);
    fprintf(fp “%f “ camera_intrinsic[1][1]);
    fprintf(fp “%f “ camera_intrinsic[0][2]);
    fprintf(fp “%f “ camera_intrinsic[1][2]);
    fprintf(fp “
“);

    for (int i=0; i<4; i++)
        fprintf(fp “%f “ camera_distortion[i]);
    fprintf(fp “
“);

    fclose(fp);

    printf(“fx=%.5f fy=%.5f cx=%.5f cy=%.5f
“ camera_intrinsic[0][0] camera_intrinsic[1][1] camera_intrinsic[0][2] camera_intrinsic[1][2]);
    printf(“k1=%.5f k2=%.5f p1=%.5f p2=%.5f
“ camera_distortion[0] camera_distortion[1] camera_distortion[2] camera_distortion[3]);
}

void Calibration()
{
    CvMat obj_pt = cvMat( NUM_CHESS_POINT * calib_frame_count 3 CV_32FC1 calib_obj_pt );
    CvMat img_pt = cvMat( NUM_CHESS_POINT * calib_frame_count 2 CV_32FC1 calib_img_pt );
    int * pt_count = (int *)malloc( sizeof(int) * calib_frame_count );
    for ( int i = 0 ; i < calib_frame_count ; i ++ )
    {
        pt_count[ i ] = NUM_CHESS_POINT;
    }
    CvMat pt_counts = cvMat( calib_frame_count 1 CV_32SC1 pt_count );

    CvMat intrinsic = cvMat( 3 3 CV_32FC1 camera_intrinsic );
    CvMat distortion = cvMat( 4 1 CV_32FC1 camera_distortion );

    cvCalibrateCamera2(
        &obj_pt
        &img_pt
        &pt_counts
        cvGetSize( gCapture.QueryF

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件      501306  2007-10-09 21:38  DemoHandyAR Documentation.pdf
     文件         242  2007-04-01 19:56  binartag_1023.cf
     文件       57344  2007-10-05 23:38  binCalibrate.exe
     文件          86  2007-02-20 13:50  bincalibration.txt
     文件      843824  2006-10-18 21:49  bincv100.dll
     文件     1011764  2006-10-18 21:49  bincxcore100.dll
     文件     1761280  2007-10-09 21:34  binDemoHandyAR.exe
     文件     1884160  2007-10-09 21:30  binDemoHandyAR_ARTag.exe
     文件       66159  2007-04-23 18:09  binearthTexture.jpg
     文件         152  2007-04-23 14:57  binfingertip_320x240.dat
     文件      237568  2001-11-07 18:27  binglut32.dll
     文件      626741  2006-10-18 21:50  binhighgui100.dll
     文件      196608  2006-02-28 18:04  binlibguide40.dll
     文件         776  2007-01-17 15:19  bin
onskin.mgm
     文件       41088  2007-04-04 13:46  binpanel_set.cf
     文件         779  2007-01-17 15:19  binskin.mgm
     文件         892  2007-10-05 16:42  CalibrateCalibrate.sln
     文件       10240  2007-10-09 11:08  CalibrateCalibrate.suo
     文件        4481  2007-10-05 16:50  CalibrateCalibrateCalibrate.vcproj
     文件        1417  2007-10-09 11:08  CalibrateCalibrateCalibrate.vcproj.TAEHEE.Taehee Lee.user
     文件          87  2007-10-05 23:39  CalibrateCalibratecalibration.txt
     文件        5922  2007-10-05 23:38  CalibrateCalibratemain.cpp
     文件        2539  2007-09-05 10:03  CalibrateCalibrateCaptureCapture.cpp
     文件         994  2007-10-05 16:46  CalibrateCalibrateCaptureCapture.h
     文件        4232  2007-10-05 16:46  CalibrateCalibrateCaptureFlyCap.cpp
     文件         849  2007-02-24 13:36  CalibrateCalibrateCaptureFlyCap.h
     文件         898  2007-09-05 09:49  DemoHandyARDemoHandyAR.sln
     文件       29184  2007-10-09 21:34  DemoHandyARDemoHandyAR.suo
     文件         242  2007-04-01 19:56  DemoHandyARDemoHandyARartag_1023.cf
     文件          86  2007-02-20 13:50  DemoHandyARDemoHandyARcalibration.txt
     文件       11477  2007-09-05 10:02  DemoHandyARDemoHandyARcvFindExtrinsicCameraParams3.cpp
............此处省略38个文件信息

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

发表评论

评论列表(条)