• 大小: 17.87MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-16
  • 语言: 其他
  • 标签: RANSAC  

资源简介

采用SIFT和RANSAC算法完成特征点的匹配和筛选,并求出物体的变换矩阵,通过变换矩阵计算出物体的边界。

资源截图

代码片段和文件信息

#include “sift.h“
#include “my_function.h“
#include 
#include 
#include “math.h“

//#include
using namespace std;



class CvModelEstimator2
{
public:
    CvModelEstimator2(int _modelPoints CvSize _modelSize int _maxBasicSolutions);
    virtual ~CvModelEstimator2();

    virtual int runKernel( const CvMat* m1 const CvMat* m2 CvMat* model )=0;
    virtual bool runLMeDS( const CvMat* m1 const CvMat* m2 CvMat* model
                           CvMat* mask double confidence=0.99 int maxIters=2000 );
    virtual bool runRANSAC( const CvMat* m1 const CvMat* m2 CvMat* model
                            CvMat* mask double threshold
                            double confidence=0.99 int maxIters=2000 );
    virtual bool refine( const CvMat* const CvMat* CvMat* int ) { return true; }
    virtual void setSeed( int64 seed );

protected:
    virtual void computeReprojError( const CvMat* m1 const CvMat* m2
                                     const CvMat* model CvMat* error ) = 0;
    virtual int findInliers( const CvMat* m1 const CvMat* m2
                             const CvMat* model CvMat* error
                             CvMat* mask double threshold );
    virtual bool getSubset( const CvMat* m1 const CvMat* m2
                            CvMat* ms1 CvMat* ms2 int maxAttempts=1000 );
    virtual bool checkSubset( const CvMat* ms1 int count );

    CvRNG rng;
    int modelPoints;
    CvSize modelSize;
    int maxBasicSolutions;
    bool checkPartialSubsets;
};


class CvFMEstimator : public CvModelEstimator2
{
public:
    CvFMEstimator( int _modelPoints );

    virtual int runKernel( const CvMat* m1 const CvMat* m2 CvMat* model );
    virtual int run7Point( const CvMat* m1 const CvMat* m2 CvMat* model );
    virtual int run8Point( const CvMat* m1 const CvMat* m2 CvMat* model );
protected:
    virtual void computeReprojError( const CvMat* m1 const CvMat* m2
                                     const CvMat* model CvMat* error );
};



CV_IMPL void cvConvertPointsHomogeneous( const CvMat* src CvMat* dst )
{
    Ptr temp denom;

    int i s_count s_dims d_count d_dims;
    CvMat _src _dst _ones;
    CvMat* ones = 0;

    if( !CV_IS_MAT(src) )
        CV_Error( !src ? CV_StsNullPtr : CV_StsBadArg
        “The input parameter is not a valid matrix“ );

    if( !CV_IS_MAT(dst) )
        CV_Error( !dst ? CV_StsNullPtr : CV_StsBadArg
        “The output parameter is not a valid matrix“ );

    if( src == dst || src->data.ptr == dst->data.ptr )
    {
        if( src != dst && (!CV_ARE_TYPES_EQ(src dst) || !CV_ARE_SIZES_EQ(srcdst)) )
            CV_Error( CV_StsBadArg “Invalid inplace operation“ );
        return;
    }

    if( src->rows > src->cols )
    {
        if( !((src->cols > 1) ^ (CV_MAT_CN(src->type) > 1)) )
            CV_Error( CV_StsBadSize “Either the number of channels or columns 

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

     文件     119361  2012-04-28 21:07  sift_RANSAC\descriptor.txt

     文件   44695552  2015-07-16 15:48  sift_RANSAC\ipch\sift-d07782ae\sift-bea1e15c.ipch

     文件        117  2012-04-28 21:46  sift_RANSAC\readme.txt

     文件      55296  2015-07-16 17:47  sift_RANSAC\Release\sift.exe

     文件    1502208  2015-07-16 17:47  sift_RANSAC\Release\sift.pdb

     文件      16303  2015-06-02 16:55  sift_RANSAC\sift\copy.cpp

     文件      39694  2015-03-06 09:59  sift_RANSAC\sift\descriptor.txt

     文件    1774114  2015-03-06 17:20  sift_RANSAC\sift\descriptor_1.txt

     文件    2768315  2015-03-17 10:20  sift_RANSAC\sift\descriptor_2.txt

     文件      17185  2015-07-16 17:54  sift_RANSAC\sift\main.cpp

     文件      31652  2015-07-15 16:31  sift_RANSAC\sift\my_function.cpp

     文件       3812  2015-07-09 10:40  sift_RANSAC\sift\my_function.h

     文件        889  2004-04-28 05:21  sift_RANSAC\sift\README

     文件      16242  2015-07-16 17:47  sift_RANSAC\sift\Release\cl.command.1.tlog

     文件     585090  2015-07-16 17:47  sift_RANSAC\sift\Release\CL.read.1.tlog

     文件      14188  2015-07-16 17:47  sift_RANSAC\sift\Release\CL.write.1.tlog

     文件    1771187  2015-06-02 16:57  sift_RANSAC\sift\Release\copy.obj

     文件      14642  2015-07-16 17:47  sift_RANSAC\sift\Release\link.command.1.tlog

     文件      31736  2015-07-16 17:47  sift_RANSAC\sift\Release\link.read.1.tlog

     文件          2  2015-07-16 17:47  sift_RANSAC\sift\Release\link.read.2.tlog

     文件       4590  2015-07-16 17:47  sift_RANSAC\sift\Release\link.write.1.tlog

     文件          2  2015-07-16 17:47  sift_RANSAC\sift\Release\link.write.2.tlog

     文件    1895034  2015-07-16 17:47  sift_RANSAC\sift\Release\main.obj

     文件       3382  2015-07-16 17:47  sift_RANSAC\sift\Release\mt.command.1.tlog

     文件       4966  2015-07-16 17:47  sift_RANSAC\sift\Release\mt.read.1.tlog

     文件       1990  2015-07-16 17:47  sift_RANSAC\sift\Release\mt.write.1.tlog

     文件    1883005  2015-07-15 16:31  sift_RANSAC\sift\Release\my_function.obj

     文件        381  2015-07-16 17:47  sift_RANSAC\sift\Release\sift.exe.intermediate.manifest

     文件         51  2015-07-16 17:47  sift_RANSAC\sift\Release\sift.lastbuildstate

     文件       4866  2015-07-16 17:47  sift_RANSAC\sift\Release\sift.log

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

评论

共有 条评论