基础2

来源:互联网 发布:后醍醐天皇知乎 编辑:程序博客网 时间:2024/06/07 21:29
CvPoint系列
CvPoint:表示图像中的点(见示意图)
CvPoint2D32f:二维空间中的点
CvPoint3D32f:三维空间中的点
构造函数:cvPointXXXX( )。注意,这是c风格的代码,构造函数是内联函数,并不是c++中的类的构造函数一样。

CvSize系列
CvSize:图像的尺寸
CvSize2D32f:如果想用浮点型。

CvScalar
包含4个浮点成员,可以用来表示表示B,G,R,alpha。(示意图)
有三个构造函数:cvScalar,cvRealScalar,cvScalarAll


CvRect
可以用来表示图像的部分区域(示意图)

CvArr

虽然Opencv1.0是大部分是由C语言完成,但是他使用的结构也是遵循面向对象的思想的。CvMat与IplImage的关系就如同C++中的继承关系,IplImage可以视为从CvMat派生的。CvArr可以视为抽象类。(例子展示)


#pragma comment(lib,"cxcore.lib")#pragma comment(lib,"cv.lib")#pragma comment(lib,"highgui.lib")#pragma comment(lib,"ml.lib")#pragma comment(lib,"cvcam.lib")#pragma comment(lib,"cvaux.lib")#include <stdio.h>#include <iostream>#include <cv.h>#include <cxcore.h>#include <highgui.h>using namespace std;#define CV_8U   0#define CV_8S   1#define CV_16U  2#define CV_16S  3#define CV_32S  4#define CV_32F  5#define CV_64F  6#define CV_USRTYPE1 7void test(CvMat* t){int type=cvGetElemType(t);//cout<<type<<endl;int size[10];int dims=cvGetDims(t,size);int x=cvGetDimSize(t,0);//0 维 长度cout<<x<<endl;int y=cvGetDimSize(t,1);//1 维 长度cout<<y<<endl;}int main(){CvMat* pmat1;pmat1=cvCreateMat(8,9,CV_32FC1);CvMat* pmat2;pmat2=cvCreateMatHeader(4,5,CV_8UC1);cvCreateData(pmat2);float data[4]={3,4,6,0};CvMat pmat3;cvInitMatHeader(&pmat3,2,2,CV_32FC1,data);CvMat* pmat4;pmat4=cvCloneMat(pmat2);test(pmat2);cvReleaseMat(&pmat1);cvReleaseMat(&pmat2);cvReleaseMat(&pmat4);return 0;}


0 0
原创粉丝点击