opencv 命名规则和一些宏观注意
来源:互联网 发布:凯迪网络手机版 编辑:程序博客网 时间:2024/05/22 04:55
1. 内部函数都是icv 开头的,不用。只是由外部函数调用。
2. 外部函数都是cv 开头的。
3. 混合的C/C++ 接口的头文件 .h 结尾。而纯C++ 是用.hpp 结尾的。
4. 函数接口设计:函数作用,返回类型,函数名,参数顺序,参数默认值。参数解释
a) 函数作用代码 要精简短小,以便调用。
b) 命名 以cvActionObject 像一句话
c) 函数返回值 通常 创建一个对象,并返回一个对象。
d) 函数的参数类型 应该用openCV中自带的类型。而不要用简单的 指针和数值,以防opencv 中的库函数 调用不方便。
e) 参数顺序:输入参数,输出参数,可选参数。输入参数通常用const 约束
5. 函数实现:
a) 关注要素: 类型检查,错误产生和处理,内存管理和资源回收,调用低级函数
b) 参数类型: openCV中普遍用高级类型 返回和传送 参数。不用简单指针和数值,为了方便其他函数的调用。
c) 错误产生时用 cvError 函数抛出错误。CV_ERROR 等代替。
d) 内存管理和资源回收: cvAlloc and cvFree 分配回收 简单缓存 有效。但是复杂资源和大内存 用cvCreate and cvRelease <object> 来分配和回收。
e) 调用低级函数 方便又安全的 方法是 使用IPPI_CALL 宏。
6. 移植性:用sizeof(int) 而不用 4 。用预处理指令包含非可移植代码。
7. 图像分: 二值图像(黑白两值图像),灰度图像(一维变化),彩色图像(三维变化)
8. 用CV_ERROR/OPENCV_ERROR 抛出错误
9. 用CV_CALL /OPENCV_CALL 调用高级函数
10. 用IPPI_CALL 调用低级函数
11. 用typedef 有利于移植,跨平台。Typedef int INTEGER;
12. CvMat 的结构: type ,step ,count ,*data,height,width
13. CvTermCriteria 迭代算法的种植准则
14. CvArr* 不确定数组
15. CvMat 结构头和数据分开存储的,可以分开创建。三种方法:(三个概念: 内存空间,头, 数据)
a) cvCreateMatHeader(); cvCreateData()= cvSetData() 先分配头,再分配数据
b) cvCreateMat(cols,rows, type) 把头和数据的空间都分配了
c) cvMat(cols,rows,type,*data) 分配头 并把已有的数据空间 用*data相连
d) CvMat *ptr = cvCreateMat(cols,rows,type); 分配好了头和数据的空间但没有初始化,只是用默认值。 cvInitMatHeader(ptr,cols,rows,type, *data)
转自http://hi.baidu.com/54newman/item/e4251f1b6e37b5ee9813d68f
- opencv 命名规则和一些宏观注意
- opencv 命名规则和一些宏观注意
- OpenCV命名规则
- OpenCV命名规则
- OpenCV命名规则
- OpenCV命名规则
- opencv命名规则
- OpenCV命名规则
- OpenCV命名规则
- seo应该注意的div和css命名规则
- C++一些命名规则
- DIVCSS网页布局常用的一些命名规则和书写
- java的一些命名规则
- 命名规则和数据类型
- 安装opencv过程中的一些注意点和测试代码
- 软件版本号规则和命名规则
- c#命名规则和代码规则
- 第一章 命名规则和风格
- 130720CF
- QString 和 char *之间如何如何转换?
- myeclipse8.5 安装svn插件
- db2 数据库代码页
- 编写linux module
- opencv 命名规则和一些宏观注意
- EPSG4326
- MFC中ON_UPDATE_COMMAND_UI和ON_COMMAND消息区别
- OpenCV命名规则
- Simplify Path
- Linux下用g++编译c程序
- UVA11324_The Largest Clique_tarjan求强连通分量+DP求最长路
- CF 192 DIV.2
- POJ题目分类