图像处理基础(二)_OpenCV命名规则
OpenCV使用近似匈牙利命名法的方法,比较值得一提的特色是:它的数据结构几乎都是大写的Cv开头,而它提供的函数都是小写的cv,举个例子:
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)。
转载:http://blog.csdn.net/justin4wd/article/details/2634107
图像处理基础(二)_OpenCV命名规则相关推荐
- 图像处理基础 || (二) 彩色图像转灰度图像
彩色图像转灰度图像 文章目录 彩色图像转灰度图像 1. 利用scikit-image将彩色图像转化成灰度图像 2. 利用 Pillow 库完成彩色图像中灰度图像的逐层提取 3. 利用 Pillow 库 ...
- 【JAVA学习】1、零基础入门Java 基础语法:概念、规则、格式
[JAVA学习]1.零基础入门Java 基础语法 前言 JAVA开发环境选择 Java 基础概念 Java 标识符 Java修饰符 基础代码模板框架 命名规则 基础规则 后端开发规则 代码格式 前言 ...
- [转]Windows与VC命名规则
转自:http://hi.baidu.com/11158512/blog/item/0fbd5535cbfb5d1c91ef3970.html 匈牙利命名法是一种编程时的命名规范.基本原则是:变量名= ...
- C语言变量d的定义法则,C语言变量命名规则(3页)-原创力文档
1.严格采用阶梯层次组织程序代码: 各层次缩进的分格采用 VC的缺省风格,即每层次缩进为4格,括号位于下一行. 要求 相匹配的大括号在同一列,对继行则要求再缩进4格.例如: 2.提示信息字符串的位置 ...
- c语言变量名用一个字母,C语言变量命名规则
<C语言变量命名规则>由会员分享,可在线阅读,更多相关<C语言变量命名规则(6页珍藏版)>请在人人文库网上搜索. 1.1.严格采用阶梯层次组织程序代码:各层次缩进的分格采用VC ...
- c语言中字符串型文件名,C语言中变量名的命名规则
1.严格采用阶梯层次组织程序代码: 各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行.要求相匹配的大括号在同一列,对继行则要求再缩进4格.例如: 2.提示信息字符串的位置 在程序 ...
- ST芯片命名规则简介
一,简介 本文简单介绍下,如何通过ST主控MCU的芯片型号来知晓芯片所包含的资源. 二,命名规则介绍 三,总结 通过上述图片可以知道ST芯片每个值代表的含义,从而知晓芯片本身所带的资源.
- c语言变量名下表,C语言变量名命名规则
一.程序风格: 1.严格采用阶梯层次组织程序代码: 各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行. 要求相匹配的大括号在同一列,对继行则要求再缩进4格.例如: 2.提示信息字 ...
- 变量命名规则_JavaScript基础教程(二)变量、常量与运算符
常量变量与运算符 从本次课程开始我们将进入JavaScript基础教程学习,本课程附带PPT讲义,课程主要针对JavaScript学习入门者. 变量 在计算机程序设计语言中,变量是存储数据的容器,变量 ...
最新文章
- 蚂蚁森林合种计划(2020.12.19更新,7天有效)
- 东财在线计算机第一套作业,东财在线21春《计算机网络基础》第一套作业题目及答案...
- C#中静态与非静态方法比较
- mui 打开openWindow新页面不读取缓存的设置/mui中h5清除缓存页面的办法
- QuickWAP 2005企业WAP网站系统简介
- Pytorch入门.pptx
- react 组件连动效果_React组件开发中常见的陷阱
- Linux系统编程---5(共享存储映射,存储映射I/O,mmap函数,父子进程间通信,匿名映射)
- 【转】WOPI host消息体结构
- MySQL参数文件位置
- 服务器一直运行python_【已采纳】supervisor在服务器端(linux),如何一直运行你的python代码...
- oracle分页的三种方式,oracle 使用rownum的三种分页方式
- linux QT 结束当前进程_嵌入式linux编程开发必备知识
- 1431.拥有最多糖果的孩z
- quartus仿真14:D触发器实现序列检测
- 大数据分析平台建设项目需求报告与技术方案
- 魅族手机Root之后如何恢复
- 专利局文件如何删除后面的注意事项
- 编程实现更改文件夹图标
- MyBatisPlus-基础CRUD操作
热门文章
- java hashtable 数据结构_java Hashtable底层原理是怎样的?数据结构包括什么?
- js获取图片原始大小
- java 读取office文件,java读取office文件
- [linux]centos6.3安装flash插件rpm方式
- 最全面、最详细的“前端模块化”总结
- Ubuntu 硬盘”分区“图文教程(用于光盘,U盘安装Ubuntu)
- flink checkpoint 恢复_Apache Flink 管理大型状态之增量 Checkpoint 详解
- ArcGIS制图技巧系列(3)—让地图更有立体感
- ArcGIS GDB中要素类不可编辑
- js dojo 保存txt文件