博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenCV学习(2)--基本数据结构
阅读量:6975 次
发布时间:2019-06-27

本文共 1849 字,大约阅读时间需要 6 分钟。

OpenCV的基本数据结构

CvPoint:表示图像中的点

CvPoint2D32f:二维空间中的点

CvPoint3D32f:三维空间中的点

这些都是结构体,并不是C++语言中的类,所以他们的构造函数就是简单的内联函数。

1 typedef struct CvPoint 2 { 3     int x; 4     int y; 5 } 6 CvPoint; 7  8  9 CV_INLINE  CvPoint  cvPoint( int x, int y )10 {11     CvPoint p;12 13     p.x = x;14     p.y = y;15 16     return p;17 }

其中的CV_INLINE就是一个宏定义:

1 define CV_INLINE inline

CvSize:表示图像的尺寸

CvSize2D32f:浮点型数据表示图像的尺寸

1 typedef struct CvSize 2 { 3     int width; 4     int height; 5 } 6 CvSize; 7  8 CV_INLINE  CvSize  cvSize( int width, int height ) 9 {10     CvSize s;11 12     s.width = width;13     s.height = height;14 15     return s;16 }

CvRect表示图像的部分区域

1 typedef struct CvRect 2 { 3     int x; 4     int y; 5     int width; 6     int height; 7 } 8 CvRect; 9 10 CV_INLINE  CvRect  cvRect( int x, int y, int width, int height )11 {12     CvRect r;13 14     r.x = x;15     r.y = y;16     r.width = width;17     r.height = height;18 19     return r;20 }

CvScalar包含4个浮点型的成员,可以用来表示B、G、R、alpha。它有三个构造函数,具体的定义:

 

typedef struct CvScalar

{
double val[4];
}
CvScalar;

 

//至少传一个参数,如果后面三个没有,默认为0

CV_INLINE CvScalar cvScalar( double val0, double val1 CV_DEFAULT(0),
double val2 CV_DEFAULT(0), double val3 CV_DEFAULT(0))
{
CvScalar scalar;
scalar.val[0] = val0; scalar.val[1] = val1;
scalar.val[2] = val2; scalar.val[3] = val3;
return scalar;
}

 

//只对第一个参数赋值,后面的为0

CV_INLINE CvScalar cvRealScalar( double val0 )
{
CvScalar scalar;
scalar.val[0] = val0;
scalar.val[1] = scalar.val[2] = scalar.val[3] = 0;
return scalar;
}

 

//把四个参数都赋值为传入的那个参数

CV_INLINE CvScalar cvScalarAll( double val0123 )
{
CvScalar scalar;
scalar.val[0] = val0123;
scalar.val[1] = val0123;
scalar.val[2] = val0123;
scalar.val[3] = val0123;
return scalar;
}

 

CvArr、CvMat和IplImage关系

派生关系为:CvArr-->CvMat-->IplImage,当CvArr用作函数的参数的时候,无论传入的是CvMat还是IplImage,内部都是按CvMat处理。

转载于:https://www.cnblogs.com/stemon/p/3836908.html

你可能感兴趣的文章
html字符字体转换
查看>>
web页面和本地数据对比问题
查看>>
Springboot 1.X 在Weblogic 中的发布
查看>>
腾讯TBS X5 WebView的简单使用
查看>>
清除浮动 .clearfix
查看>>
topcoder srm 370 div1
查看>>
WPF 触发器例子
查看>>
古典密码简介
查看>>
axios全局设置url公共请求头
查看>>
JQuery选择器学习整理(基本选择器,层级选择器,伪类选择器,属性过滤,内容过滤,可见性过滤,范围选择器,排除选择器)...
查看>>
SVN服务器的搭建和使用
查看>>
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
查看>>
uestc1633
查看>>
关于 bitset 的一些题目
查看>>
asp.net mvc4应用程序发布、部署、常见问题
查看>>
窗口监视
查看>>
电梯调度
查看>>
使用VS附加到进程的时候如何选择正确的W3WP进程
查看>>
Could not load JDBC driver class [com.mysql.jdbc.Driver]异常
查看>>
匿名对象、内部类、包的声明与访问、访问修饰符、代码块
查看>>