学习opencv(一)——扒一扒opencv中的一些基本数据类型
2015-10-11 18:02
429 查看
今天来扒一扒opencv中的一些基本数据类型。一直看的是《学习opencv》这本书,想扒出cxtypes.h文件看看每一个函数类型,但是在opencv2.4.10中并没有找到,所以博主翻了翻找到了opencv\build\include\opencv2\core\types_c.h这个文件,里面就是一些数据类型啦~!(以下opencv简称cv)
我们从最简单的开始:
1.Cvpoint
我们先来看看cv怎么写的:
Cvpoint是一个包含integer类型的成员x,y的简单结构体,也就是一个有序整数对,比如说我们可以用CvPoint来表示一个点的坐标。
紧接着CvPoint类型,我们给出了一个用整数x,y创建CvPoint类型变量的函数cvpoint(注意它们的大小写不同):
此函数的使用方式为:
2.CvPoint的两个变种:CvPoint2D32f和CvPoint3D32f:
CvPoint2D32f:
由它可以引申出一些函数:
a.cvPoint2D32f:类似cvpoint的cvPoint2D32f(double,double)函数,其功能是返回一个CvPoint2D32f类型的变量,用法与cvpoint相似,不在赘述。
b.cvPointTo32f
这个函数的功能是把Cvpoint类型的变量转化为cvPoint2D32f类型的变量,其原理就是将int型的成员变量强制转换为float型。
c.cvPointFrom32f
其功能与cvPointTo32f的功能相反:即将CvPoint2D32f型变量转换为CvPoint型,其原理就是把成员变量四舍五入。
CvPoint3D32f:
CvPoint3D32f类型有三个成员变量,其他与CvPoint2D32f完全相同,形象的理解:CvPoint2D32f可以表示平面上的点的坐标,CvPoint3D32f可以表示三维空间中的点的坐标。
总结:
有关CvPoint有关及周边就介绍到这里,不定期更新~
有问题请留言~
2015-10-11 于实验室
我们从最简单的开始:
1.Cvpoint
我们先来看看cv怎么写的:
typedef struct CvPoint { int x; int y; } CvPoint;
Cvpoint是一个包含integer类型的成员x,y的简单结构体,也就是一个有序整数对,比如说我们可以用CvPoint来表示一个点的坐标。
紧接着CvPoint类型,我们给出了一个用整数x,y创建CvPoint类型变量的函数cvpoint(注意它们的大小写不同):
CV_INLINE CvPoint cvPoint( int x, int y ) { CvPoint p;//首先创建CvPoint类型变量p p.x = x; p.y = y;//为p的成员变量赋值 return p;//返回p }
此函数的使用方式为:
Cvpoint p=cvpoint(1,2); //创建一个CvPoint型变量,p.x=1,p.y=2;
2.CvPoint的两个变种:CvPoint2D32f和CvPoint3D32f:
CvPoint2D32f:
typedef struct CvPoint2D32f// { float x; float y; } CvPoint2D32f;
由它可以引申出一些函数:
a.cvPoint2D32f:类似cvpoint的cvPoint2D32f(double,double)函数,其功能是返回一个CvPoint2D32f类型的变量,用法与cvpoint相似,不在赘述。
b.cvPointTo32f
CV_INLINE CvPoint2D32f cvPointTo32f( CvPoint point ) { return cvPoint2D32f( (float)point.x, (float)point.y ); }
这个函数的功能是把Cvpoint类型的变量转化为cvPoint2D32f类型的变量,其原理就是将int型的成员变量强制转换为float型。
c.cvPointFrom32f
CV_INLINE CvPoint cvPointFrom32f( CvPoint2D32f point ) { CvPoint ipt; ipt.x = cvRound(point.x); ipt.y = cvRound(point.y); //cvRound函数:对一个double型的数进行四舍五入,并返回一个整型数 return ipt; }
其功能与cvPointTo32f的功能相反:即将CvPoint2D32f型变量转换为CvPoint型,其原理就是把成员变量四舍五入。
CvPoint3D32f:
typedef struct CvPoint3D32f { float x; float y; float z; } CvPoint3D32f;
CvPoint3D32f类型有三个成员变量,其他与CvPoint2D32f完全相同,形象的理解:CvPoint2D32f可以表示平面上的点的坐标,CvPoint3D32f可以表示三维空间中的点的坐标。
总结:
变量类型 | 成员变量 |
---|---|
Cvpoint | int x,y; |
CvPoint2D32f | float x,y; |
CvPoint3D32f | float x,y,z; |
CvPoint2D64f | double x,y; |
CvPoint3D64f | double x,y,z; |
CvSize | int width,height; |
CvSize2D32f | float width, height |
CvRect | int x, y,width,height |
有问题请留言~
2015-10-11 于实验室
相关文章推荐
- python中使用OpenCV进行人脸检测的例子
- opencv 做人脸识别 opencv 人脸匹配分析
- 使用opencv拉伸图像扩大分辨率示例
- OpenCV 2.4.3 C++ 平滑处理分析
- 利用Python和OpenCV库将URL转换为OpenCV格式的方法
- python结合opencv实现人脸检测与跟踪
- 在树莓派2或树莓派B+上安装Python和OpenCV的教程
- OpenCV配置,从来没有这么简单!
- ubuntu下opencv和qt的安装配置
- OpenCV学习笔记(二十五)——OpenCV图形界面设计Qt+VS2008
- 分享一些OpenCV实现立体视觉的经验
- 关于OpenCv图像变换与基本图形检测
- "应用程序正常初始化失败"-0xc0150002 解决办法
- OpenCV->HSV色彩空间
- opencv 内存泄露
- OpenCV函数cvFindContours
- OpenCV 2.3.1图像文件的读入和显示
- opencv2 矩阵方式 resize图像缩放代码
- OpenCV 灰度直方图
- 彩色图转为灰度图