基于opencv实现 LK跟踪算法


基于opencv 实现的LK跟踪算法,可以跟踪摄像头视频或是视频文件,效果很好。
资源截图
代码片段和文件信息
/* Demo of modified Lucas-Kanade optical flow algorithm.
   See the printf below */

#ifdef _CH_
#pragma package 
#endif

#ifndef _EiC
#include “cv.h“
#include “highgui.h“
#include 
#include 
#endif

IplImage *image = 0 *grey = 0 *prev_grey = 0 *pyramid = 0 *prev_pyramid = 0 *swap_temp;

int win_size = 10;
const int MAX_COUNT = 500;
CvPoint2D32f* points[2] = {00} *swap_points;
char* status = 0;
int count = 0;
int need_to_init = 0;
int night_mode = 0;
int flags = 0;
int add_remove_pt = 0;
CvPoint pt;


void on_mouse( int event int x int y int flags void* param )
{
    if( !image )
        return;

    if( image->origin )
        y = image->height - y;

    if( event == CV_EVENT_LBUTTONDOWN )
    {
        pt = cvPoint(xy);
        add_remove_pt = 1;
    }
}


int main( int argc char** argv )
{
    CvCapture* capture = 0;
    
    capture = cvCaptureFromAVI( argv[1] );

    if( !capture )
    {
        fprintf(stderr“Could not initialize capturing...
“);
        return -1;
    }
    printf( “ ESC - quit the program

            “ r - auto-initialize tracking

            “ c - delete all the points

            “ n - switch the “night“ mode on/off

            “To add/remove a feature point click it
“ );

    cvNamedWindow( “LkDemo“ 0 );
    cvSetMouseCallback( “LkDemo“ on_mouse 0 );

    for(;;)
    {
        IplImage* frame = 0;
        int i k c;

        frame = cvQueryframe( capture );
        if( !frame )
            break;

        if( !image )
        {
            /* allocate all the buffers */
            image = cvCreateImage( cvGetSize(frame) 8 3 );
            image->origin = frame->origin;
            grey = cvCreateImage( cvGetSize(frame) 8 1 );
            prev_grey = cvCreateImage( cvGetSize(frame) 8 1 );
            pyramid = cvCreateImage( cvGetSize(frame) 8 1 );
            prev_pyramid = cvCreateImage( cvGetSize(frame) 8 1 );
            points[0] = (CvPoint2D32f*)cvAlloc(MAX_COUNT*sizeof(points[0][0]));
            points[1] = (CvPoint2D32f*)cvAlloc(MAX_COUNT*sizeof(points[0][0]));
            status = (char*)cvAlloc(MAX_COUNT);
            flags = 0;
        }

        cvCopy( frame image 0 );
        cvCvtColor( image grey CV_BGR2GRAY );

        if( night_mode )
            cvZero( image );
        
        if( need_to_init )
        {
            /* automatic initialization */
            IplImage* eig = cvCreateImage( cvGetSize(grey) 32 1 );
            IplImage* temp = cvCreateImage( cvGetSize(grey) 32 1 );
            double quality = 0.01;
            double min_distance = 10;

            count = MAX_COUNT;
            cvGoodFeaturesToTrack( grey eig temp points[1] &count
                                   quality min_distance 0 3 0 0.04 );
            cvFindCornerSubPix( grey points[1] count
                cvSize(win_size

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

     文件   19246080  2010-11-24 15:48  LKDemoDebugliu.avi

     文件    2262016  2007-07-08 17:35  LKDemoDebuglkdemo.bsc

     文件     196675  2007-08-21 11:04  LKDemoDebuglkdemo.exe

     文件     220544  2007-08-21 11:04  LKDemoDebuglkdemo.ilk

     文件      25457  2007-08-21 11:04  LKDemoDebuglkdemo.obj

     文件    3103468  2007-08-21 11:04  LKDemoDebuglkdemo.pch

     文件     476160  2007-08-21 11:04  LKDemoDebuglkdemo.pdb

     文件          0  2007-07-08 17:35  LKDemoDebuglkdemo.sbr

     文件      50176  2010-12-29 11:01  LKDemoDebugvc60.idb

     文件      77824  2007-08-21 11:04  LKDemoDebugvc60.pdb

     文件     432700  2007-02-24 15:18  LKDemoDebugvideo1.avi

     文件       5362  2010-12-29 11:01  LKDemolkdemo.c

     文件       3484  2007-06-29 12:07  LKDemolkdemo.dsp

     文件        520  2007-06-29 12:07  LKDemolkdemo.dsw

     文件      58368  2010-12-29 13:13  LKDemolkdemo.ncb

     文件     349184  2010-12-29 13:13  LKDemolkdemo.opt

     文件        246  2010-12-02 20:11  LKDemolkdemo.plg

     文件     432700  2007-02-24 15:18  LKDemovideo1.avi

     文件        136  2009-12-25 15:01  LKDemo说明.txt

     目录          0  2010-12-29 09:57  LKDemoDebug

     目录          0  2010-12-29 13:13  LKDemo

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

             26941100                    21


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

发表评论

评论列表(条)