読者です 読者をやめる 読者になる 読者になる

OpenCV 1.2(2.0?) でのcvの新しい関数 不完全一覧

OpenCVの新しいバージョンが、ベータ版ですがリリースされたようです。

http://sourceforge.net/projects/opencvlibrary/

しかしバージョン番号がよくわかりません。上のSourceForgeのダウンロードページでも、ボタンには2.0とありますが、ファイル名やインストーラでの表示などは1.2となっています。どっちなんでしょう。


それはさておき、どんな関数が増えたのかほとんど知らないので、cv.hを見てみました。一通り流し読みして、見覚えのない関数を以下に挙げてみます。よって、実は以前から存在する関数が含まれていたり、または何か抜けているかもしれませんがご了承ください。

cvCreatePyramid

Builds pyramid for an image

CVAPI(CvMat**) cvCreatePyramid( const CvArr* img, int extra_layers, double rate,
                                const CvSize* layer_sizes CV_DEFAULT(0),
                                CvArr* bufarr CV_DEFAULT(0),
                                int calc CV_DEFAULT(1),
                                int filter CV_DEFAULT(CV_GAUSSIAN_5x5) );

cvReleasePyramid

Releases pyramid

CVAPI(void)  cvReleasePyramid( CvMat*** pyramid, int extra_layers );

cvConvertMaps

Converts mapx & mapy from floating-point to integer formats for cvRemap

CVAPI(void)  cvConvertMaps( const CvArr* mapx, const CvArr* mapy,
                            CvArr* mapxy, CvArr* mapalpha );

cvLinearPolar

Performs forward or inverse linear-polar image transform

CVAPI(void)  cvLinearPolar( const CvArr* src, CvArr* dst,
                         CvPoint2D32f center, double maxRadius,
                         int flags CV_DEFAULT(CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS));

cvEstimateRigidTransform

Estimate rigid transformation between 2 images or 2 point sets

CVAPI(int)  cvEstimateRigidTransform( const CvArr* A, const CvArr* B,
                                      CvMat* M, int full_affine );

cvFindDominantPoints

Finds high-curvature points of the contour

CVAPI(CvSeq*) cvFindDominantPoints( CvSeq* contour, CvMemStorage* storage,
                                   int method CV_DEFAULT(CV_DOMINANT_IPAN),
                                   double parameter1 CV_DEFAULT(0),
                                   double parameter2 CV_DEFAULT(0),
                                   double parameter3 CV_DEFAULT(0),
                                   double parameter4 CV_DEFAULT(0));

cvCreateKDTree

Constructs kd-tree from set of feature descriptors

CVAPI(struct CvFeatureTree*) cvCreateKDTree(CvMat* desc);

cvCreateSpillTree

Constructs spill-tree from set of feature descriptors

CVAPI(struct CvFeatureTree*) cvCreateSpillTree( const CvMat* raw_data,
                                    const int naive CV_DEFAULT(50),
                                    const double rho CV_DEFAULT(.7),
                                    const double tau CV_DEFAULT(.1) );

CvLSH

struct CvLSH;

CvLSHOperations

struct CvLSHOperations;

cvCreateLSH

Construct a Locality Sensitive Hash (LSH) table, for indexing d-dimensional vectors of given type. Vectors will be hashed L times with k-dimensional p-stable (p=2) functions.

CVAPI(struct CvLSH*) cvCreateLSH(struct CvLSHOperations* ops, int d,
                                 int L CV_DEFAULT(10), int k CV_DEFAULT(10),
                                 int type CV_DEFAULT(CV_64FC1), double r CV_DEFAULT(4),
                                 int64 seed CV_DEFAULT(-1));

cvCreateMemoryLSH

CVAPI(struct CvLSH*) cvCreateMemoryLSH(int d, int n, int L CV_DEFAULT(10), int k CV_DEFAULT(10),
                                       int type CV_DEFAULT(CV_64FC1), double r CV_DEFAULT(4),
                                       int64 seed CV_DEFAULT(-1));

cvReleaseLSH

Free the given LSH structure.

CVAPI(void) cvReleaseLSH(struct CvLSH** lsh);

LSHSize

Return the number of vectors in the LSH.

CVAPI(unsigned int) LSHSize(struct CvLSH* lsh);

接頭辞cvが無いのは何か訳あり??

cvLSHAdd

Add vectors to the LSH structure, optionally returning indices.

CVAPI(void) cvLSHAdd(struct CvLSH* lsh, const CvMat* data, CvMat* indices CV_DEFAULT(0));

cvLSHRemove

Remove vectors from LSH, as addressed by given indices.

CVAPI(void) cvLSHRemove(struct CvLSH* lsh, const CvMat* indices);

cvLSHQuery

Query the LSH n times for at most k nearest points; data is n x d, indices and dist are n x k. At most emax stored points will be accessed.

CVAPI(void) cvLSHQuery(struct CvLSH* lsh, const CvMat* query_points,
                       CvMat* indices, CvMat* dist, int k, int emax);

CvMSERParams

typedef struct CvMSERParams
{
    // delta, in the code, it compares (size_{i}-size_{i-delta})/size_{i-delta}
    int delta;
    // prune the area which bigger/smaller than max_area/min_area
    int maxArea;
    int minArea;
    // prune the area have simliar size to its children
    float maxVariation;
    // trace back to cut off mser with diversity < min_diversity
    float minDiversity;
    /* the next few params for MSER of color image */
    // for color image, the evolution steps
    int maxEvolution;
    // the area threshold to cause re-initialize
    double areaThreshold;
    // ignore too small margin
    double minMargin;
    // the aperture size for edge blur
    int edgeBlurSize;
}
CvMSERParams;

cvMSERParams

CVAPI(CvMSERParams) cvMSERParams( int delta CV_DEFAULT(5), int min_area CV_DEFAULT(60),
                           int max_area CV_DEFAULT(14400), float max_variation CV_DEFAULT(.25f),
                           float min_diversity CV_DEFAULT(.2f), int max_evolution CV_DEFAULT(200),
                           double area_threshold CV_DEFAULT(1.01),
                           double min_margin CV_DEFAULT(.003),
                           int edge_blur_size CV_DEFAULT(5) );

cvExtractMSER

Extracts the contours of Maximally Stable Extremal Regions

CVAPI(void) cvExtractMSER( CvArr* _img, CvArr* _mask, CvSeq** contours, CvMemStorage* storage,  CvMSERParams params );

CvStarKeypoint

typedef struct CvStarKeypoint
{
    CvPoint pt;
    int size;
    float response;
}
CvStarKeypoint;

cvStarKeypoint

CV_INLINE CvStarKeypoint cvStarKeypoint(CvPoint pt, int size, float response);

CvStarDetectorParams

typedef struct CvStarDetectorParams
{
    int maxSize;
    int responseThreshold;
    int lineThresholdProjected;
    int lineThresholdBinarized;
    int suppressNonmaxSize;
}
CvStarDetectorParams;

cvStarDetectorParams

CV_INLINE CvStarDetectorParams cvStarDetectorParams(
    int maxSize CV_DEFAULT(45),
    int responseThreshold CV_DEFAULT(30),
    int lineThresholdProjected CV_DEFAULT(10),
    int lineThresholdBinarized CV_DEFAULT(8),
    int suppressNonmaxSize CV_DEFAULT(5));

cvGetStarKeypoints

CVAPI(CvSeq*) cvGetStarKeypoints( const CvArr* img, CvMemStorage* storage,
        CvStarDetectorParams params CV_DEFAULT(cvStarDetectorParams()));

cvRQDecomp3x3

Computes RQ decomposition for 3x3 matrices

CVAPI(void) cvRQDecomp3x3( const CvMat *matrixM, CvMat *matrixR, CvMat *matrixQ,
                           CvMat *matrixQx CV_DEFAULT(NULL),
                           CvMat *matrixQy CV_DEFAULT(NULL),
                           CvMat *matrixQz CV_DEFAULT(NULL),
                           CvPoint3D64f *eulerAngles CV_DEFAULT(NULL));

cvDecomposeProjectionMatrix

Computes projection matrix decomposition

CVAPI(void) cvDecomposeProjectionMatrix( const CvMat *projMatr, CvMat *calibMatr,
                                         CvMat *rotMatr, CvMat *posVect,
                                         CvMat *rotMatrX CV_DEFAULT(NULL),
                                         CvMat *rotMatrY CV_DEFAULT(NULL),
                                         CvMat *rotMatrZ CV_DEFAULT(NULL),
                                         CvPoint3D64f *eulerAngles CV_DEFAULT(NULL));

cvCalcMatMulDeriv

Computes d(AB)/dA and d(AB)/dB

CVAPI(void) cvCalcMatMulDeriv( const CvMat* A, const CvMat* B, CvMat* dABdA, CvMat* dABdB );

cvComposeRT

Computes r3 = rodrigues(rodrigues(r2)*rodrigues(r1)),
t3 = rodrigues(r2)*t1 + t2 and the respective derivatives

CVAPI(void) cvComposeRT( const CvMat* _rvec1, const CvMat* _tvec1,
                         const CvMat* _rvec2, const CvMat* _tvec2,
                         CvMat* _rvec3, CvMat* _tvec3,
                         CvMat* dr3dr1 CV_DEFAULT(0), CvMat* dr3dt1 CV_DEFAULT(0),
                         CvMat* dr3dr2 CV_DEFAULT(0), CvMat* dr3dt2 CV_DEFAULT(0),
                         CvMat* dt3dr1 CV_DEFAULT(0), CvMat* dt3dt1 CV_DEFAULT(0),
                         CvMat* dt3dr2 CV_DEFAULT(0), CvMat* dt3dt2 CV_DEFAULT(0) );

cvRANSACUpdateNumIters

updates the number of RANSAC iterations

CVAPI(int) cvRANSACUpdateNumIters( double p, double err_prob,
                                   int model_points, int max_iters );

cvTriangulatePoints

Triangulation functions

CVAPI(void) cvTriangulatePoints(CvMat* projMatr1, CvMat* projMatr2,
                                CvMat* projPoints1, CvMat* projPoints2,
                                CvMat* points4D);

cvCorrectMatches

Triangulation functions

CVAPI(void) cvCorrectMatches(CvMat* F, CvMat* points1, CvMat* points2,
                             CvMat* new_points1, CvMat* new_points2);