首页 > 学院 > 开发设计 > 正文

文章标题

2019-11-11 01:27:37
字体:
来源:转载
供稿:网友

一、CvMat结构体

typedef struct CvMat{ int type; int step; int* refcount; int hdr_refcount; union { uchar* ptr; short* s; int* i; float* fl; double* db; } data; union { int rows; int height; }; union { int cols; int width; };} CvMat;

二、矩阵的创建和释放

CvMat* cvCreateMat(int rows,int cols,int type); CvMat* cvCreateMatHeader(int rows,int cols,int type); CvMat* cvInitMatHeader(int rows,int cols,int type,void* data = NULL,int step = CV_AUTOSTEP); CvMat* cvMat(int rows,int cols,int type,void* data = NULL) CvMat* cvCloneMat(const cvMat* mat); cvReleaseMat(CvMat** mat);

三、矩阵数据的存取 1·简单的方法 利用CV_MAT_ELEM()或CV_MAT_ELEM_PTR()宏 例:CV_MAT_ELEM() CvMat* mat = cvCreateMat(5,5,CV_32FC1); float element_3_2 = CV_MAT_ELEM( *mat,float,3,2); 例:CV_MAT_ELEM_PTR() CvMat* mat = cvCreateMat(5,5,CV_32FC1); float element_3_2 = 7.7; (float)CV_MAT_ELEM_PTR(*mat,3,2) = element_3_2; 2·麻烦的方法 指针访问矩阵结构cvPtr*D家族和cvGet*D、cvSet*D家族;

uchar* cvPtr1D(const CvArr* arr,int idx0,int* type = NULL); uchar* cvPtr2D(const CvArr* arr,int idx0,int idx1,int* type = NULL); uchar* cvPtr3D(const CvArr* arr,int idx0,int idx1,int idx2,int* type = NULL); uchar* cvPtrND(const CvArr* arr,int* idx,int* type = NULL,int create_node = 1,unsigned* PRecalc_hashval = NULL); double cvGetReal1D(const CvArr* arr,int idx0); double cvGetReal2D const CvArr* arr,int idx0,int idx1); double cvGetReal3D(const CvArr* arr,int idx0,int idx1,int idx2); double cvGetRealND(const CvArr* arr,int* idx); CvScalar cvGet1D(const CvArr* arr,int idx0); CvScalar cvGet2D(const CvArr* arr,int idx0,int idx1 ); CvScalar cvGet3D(const CvArr* arr,int idx0,int idx1,int idx2 ); CvScalar cvGetND(const CvArr* arr,int* idx); double cvSetReal1D(const CvArr* arr,int idx0); double cvSetReal2D const CvArr* arr,int idx0,int idx1); double cvSetReal3D(const CvArr* arr,int idx0,int idx1,int idx2); double cvSetRealND(const CvArr* arr,int* idx); CvScalar cvSet1D(const CvArr* arr,int idx0); CvScalar cvSet2D(const CvArr* arr,int idx0,int idx1 ); CvScalar cvSet3D(const CvArr* arr,int idx0,int idx1,int idx2 ); CvScalar cvSetND(const CvArr* arr,int* idx);


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表