OpenCV命名规则
来源:互联网 发布:程序员怎么学 编辑:程序博客网 时间:2024/05/21 07:46
CvSize ImageSize = cvSize(400,300); //cvSize(width,height)
ImageSize的类型是CvSize,通过cvSize()函数來初始化结构体:400代表的是宽、300代表的是高;CvSize结构体包含width及height两个整型,可以用ImageSize.width,ImageSize.height來直接读取和设置,唯一差別是,cvSize()顺便用malloc()分配了结构体的内存空间。
函数命名规则基本上遵从:cvActionTargetMethod();提高了函数的可读性,指明用什么动作,哪个目标,用什么方法。常遇到的状况有四种:
1.cvActionTarget()
2.cvTarget()
3.cvMethod()
4.cvActionMethod()
1.的话例如cvCreateImage(),cvNamedWindow()等;
2.的话非常常见,如cvMat(),cvSize(),cvPoint();
3.的话比较常用的是算法或某方法,如cvDCT()离散余弦变换算法;
4.的话如cvFindContours()轮廓搜寻算法;此外也有例外,如:DoubleClickedMouse()(这个例子不在OpenCV命名之內)。这种命名法对于常写程序的人而言是相当重要的技巧,初始化数据结构就直接用名字,函数调用就用动词+名词,当再构建一个程序或系统的时候可以很容易的用数据流图(DFD)表示。这个是良好的命名习惯。
常量命名规则,OpenCV里提供了大量预定义的常量,也就是大写英文加下划线的那种,如:
CV_8UC1
IPL_DEPTH_8U
CV_BLUR_NO_SCALE
这种常量由#define在头文件中定义,如:
#define CV_BLUR_NO_SCALE 0
一般的常量都很容易从字面上的意义去了解,比较特殊的是矩阵和图形的创建参数,cvCreateMat(),cvCreateImage()。
cvCreateMat()参数的命名规则是用大写CV_(位数)+(数据类型)+(Channel数),全部的矩阵参数如下所示:
CV_8UC1 CV_8SC1 CV_16UC1 CV_16SC1 CV_32SC1 CV_32FC1 CV_64FC1
CV_8UC2 CV_8SC2 CV_16UC2 CV_16SC2 CV_32SC2 CV_32FC2 CV_64FC2
CV_8UC3 CV_8SC3 CV_16UC3 CV_16SC3 CV_32SC3 CV_32FC3 CV_64FC3
CV_8UC4 CV_8SC4 CV_16UC4 CV_16SC4 CV_32SC4 CV_32FC4 CV_64FC4
里面的位数,分别代表8bits、16bits、32bits、64bits;
数据类型,U代表Unsigned Integer,无符号整数类型;S代表Signed Integer,有符号整数类型,F代表Float,浮点数类型;
Channel数,C1代表单通道,C2代表两个通道,C3代表三个通道,以此类推… 这里的通道表示的是色彩空间的维度,例如BMP格式的RGB空间,它的Channel就是3,简单来说就是C1代表一个二维矩阵,C2代表两个二维矩阵,C3代表三个二维矩阵,以此类推…
cvCreateImage()参数固定用IPL_DEPTH_开头,命名规则为IPL_DEPTH_(位数)+(数据类型),全部的参数如下所示:
IPL_DEPTH_1U IPL_DEPTH_32F IPL_DEPTH_8S
IPL_DEPTH_8U IPL_DEPTH_16S
IPL_DEPTH_16U IPL_DEPTH_32S
所有的说明皆同上述的矩阵参数命名规则,位数分別有1bit(黑白二值图),8bits,16bits,32bits;数据类型分別为U(Unsigned Integer),S(Signed Integer),F(Float)。
OpenCV 命名规则
(1) 函数名:
cvActionTargetMod(...)
Action = 核心功能(core functionality) (e.g. set, create)
Target = 目标图像区域(target image area) (e.g. contour, polygon)
Mod = (可选的)调整语(optional modifiers) (e.g. argument type)
(2) 矩阵数据类型:
CV_<bit_depth>(S|U|F)C<number_of_channels>
S = 符号整型
U = 无符号整型
F = 浮点型
E.g.: CV_8UC1 是指一个8位无符号整型单通道矩阵,
CV_32FC2是指一个32位浮点型双通道矩阵.
(3) 图像数据类型:
IPL_DEPTH_<bit_depth>(S|U|F)
E.g.: IPL_DEPTH_8U 图像像素数据是8位无符号整型.
IPL_DEPTH_32F图像像素数据是32位浮点型.
(4) 头文件:
#include <cv.h>
#include <cvaux.h>
#include <highgui.h>
#include <ml.h>
#include <cxcore.h> // 一般不需要,cv.h 内已包含该头文件
- OpenCV命名规则
- OpenCV命名规则
- OpenCV命名规则
- OpenCV命名规则
- opencv命名规则
- OpenCV命名规则
- OpenCV命名规则
- opencv 命名规则和一些宏观注意
- opencv 命名规则和一些宏观注意
- OpenCV(三):OpenCV命名规则+实例演示
- Opencv笔记(1) 数据结构的命名规则(CvMat,...)
- OpenCV下批量读取规则连续命名文件的源程序!
- 命名规则
- 命名规则
- 命名规则
- 命名规则
- 命名规则
- 命名规则
- OpenCV数据读写操作
- 地区三级联动代码
- 有没有人需要参加中兴应用大赛的啊~~
- iOS编程--Xcode使用指南1--Xcode菜单介绍--Xcode
- 矩阵理解(转)
- OpenCV命名规则
- 给年轻程序员的几句话
- TCP/IP网络协议学习笔记之以太网
- poj/pku 3680(最小费用最大流)
- css 针对IE的新方法
- C/C++ Standard Predefined Macros
- 80x86寄存器
- Hibernate-Criteria/DetachedCriteria 详解
- IE浏览器提交数据的编码方式