OpenCV命名规则

OpenCV(三):OpenCV命名规则+实例演示 一、OpenCV命名规则      1、函数 命名规则             通用函数名: cvActionTargetMod(...)              其中,   Action = 核心功能(core functionality) (e.g. set, create)                          Target = 目标图像区域(target im 阅读详情
 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)。

 

 

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菜鸟纪实(1) 最近找工作备受歧视,因为论文不够好,所以创业公司对我不搭理,又因为编程能力不行,博士三年只用了MATLAB,导致大公司也不要我去做螺丝钉。最难过的还是我厂,在电话面之后婉拒了我,简直难过的不能自己。于是痛定思痛,决定发愤图强,好好学习之。 目前,主流的ML框架有TensorFlow(Python)、Theano(Python)、Torch(Lua)、Caffe(C++)。CV界元老级的还是Ope 阅读详情

相关推荐

opencv图片的批量重命名

批量重命名的程序写好了,

opencv 命名规则和一些宏观注意

1.         内部函数都是icv 开头的,不用。只是由外部函数调用。 2.         外部函数都是cv 开头的。 3.         混合的C/C++       接口的头文件 .h 结尾。而纯C++ 是用.hpp 结尾的。 4.         函数接口设计:函数作用,返回类型,函数名,参数顺序,参数默认值。参数解释 a)         函数作用代码 要

燕子lovinglife 1275

Marin说PCB之LPDDR5的布线注意事项--01

以上就是本期所有内容了,有些是通用的LPDDR5的设计准则,有的是针对单板的设计规则,严格意义说是没有哪一种规则是完全适用的LPDDR5的 通用规则的,不同的单板可能板厚,板材,层数,SOC以及DDR的型号都是不同的,一般的做法就是严格按照SOC手册上的LPDDR5的要求加上仿真同事给的建议修改优化就好了,我们下期文章不见不散。我们知道想要做好一个LPDDR颗粒,需要考虑的是因素有很多例如,电源完整性,信号完整性,层叠的设计,布局的摆放,布线的合理规划,去耦电容的摆放等等。

weixin_45223454的博客 3163

opencv之获取图片的width和height以及矩形框标注

opencv获取图片宽和高,矩形框的标注,coco数据集矩形框标注的应用。

freeline的博客 8995

CCD成像原理以及机器视觉中的相机选型

CCD成像原理以及机器视觉中的相机选型 近年来,随着人工智能的高速发展和图像处理技术的日益成熟,机器视觉在自动化领域发挥着越来越大的作用。机器视觉被用于代替人工视觉,使机器人能够完成以往只有人工才能完成的任务,这大大减少了在危险环境下工作的风险。同时,在来料无序或工作环境杂乱的情况下,机器视觉可以显著提高生产效率和自动化柔性程度。随着人们对工业设计水平和生产效率需求的日益提高,机器视觉正在逐步代替传统复杂繁琐的自动化模式,成为当今的主要发展趋势。 机器视觉是一项综合的技术,包括数字图像处理,传感器,光学

cszn6666的博客 5571

运放+MOS恒流源电路仿真分析

利用运放设计一个恒流源

HW-BASE的博客 4084

OpenCV基础——命名规则、基本数据结构

一、命名规则 1,函数命名规则 通用行数名:cvActionTargetMod(...) Action表示核心函数(Set,Create等); Target表示目标图像区域(轮廓,多边形等); Mod表示可选变种(变量类型等); 2,矩阵数据类型 CV_&lt;bit_depth&gt;(S|U|F)C&lt;number_of_channels&gt; S表示带符号整数 U表示...

沙子的专栏 716

《无线传感网络 matlab》:从入门到实践

这就是如何使用Matlab建立一个简单的无线传感网络并进行仿真的方法。当然,这只是一个入门级的示例,真正的无线传感网络可能会更加复杂和庞大。首先,我们需要创建一个无线传感网络的基础结构。接下来,我们需要定义一个数据包的格式,以便节点之间可以交换信息。无线传感网络是一种由无线传感器节点组成的、自组织的网络。现在,我们可以开始编写节点代码了。我们将使用Matlab提供的工具箱来构建一个简单的无线传感网络,并对其进行仿真和分析。现在,我们可以将这个节点复制9次,以创建一个包含10个节点的无线传感网络。

NoerrorCode的博客 296

opencv命名规则

OpenCV使用近似匈牙利命名法的方法,比较值得一提的特色是,它的资料结构几乎都是大写的Cv开头,而他的副程式都是小写的cv,举个例子:  CvSize ImageSize1 = cvSize( 400 , 300 );//cvSize(width,height) 资料结构ImageSize1的型态是CvSize,藉由cvSize()这个副程式来初始化资料结构,400代表的是宽,300代表的是

飞龙马的专栏 890

谱方法学习笔记-下(超详细)

《谱方法学习笔记》深入介绍了傅立叶谱方法在解决偏微分方程问题中的理论和实践,提供了清晰的步骤、Matlab代码以及对一维、二维波动方程等不同问题的解析,适合对谱方法感兴趣的学习者。

图灵的猫的博客 2853

HFSS实战项目——微带带通滤波器设计

本文详细介绍并设计了一款微带带通滤波器,通过HFSS三位电磁仿真软件对其进行仿真设计及优化,仿真结果表明,本文设计的滤波器表现出优良的滤波性能,符合设计要求。

2401_87464239的博客 5391

图像处理基础(二)_OpenCV命名规则

OpenCV使用近似匈牙利命名法的方法,比较值得一提的特色是:它的数据结构几乎都是大写的Cv开头,而它提供的函数都是小写的cv,举个例子: CvSize ImageSize = cvSize(400,300); //cvSize(width,height) ImageSize的类型是CvSize,通过cvSize()函数來初始化结构体:400代表的是宽、300代表的是高;CvSize结构体包含

专注 机器学习+人工智能 1290

Test软件:Keysight二次开发_(3).安装与配置开发环境

在开始进行Keysight软件的二次开发之前,首先需要确保您的开发环境已经正确安装和配置。本节将详细介绍如何安装和配置必要的开发工具和依赖项,以便您能够顺利进行开发工作。

2401_87715305的博客 1413

OpenCv学习笔记--1.命名规则

最近在学习OpenCv,做一下学习笔记,记录一下相关知识点。之前一直不太喜欢做写博客,最近觉得还是有必要弄一下的,免得很多东西都忘记了。 进入正题: (1) 函数名: cvActionTargetMod(...) Action = 核心功能(core functionality) (e.g. set, create) Target = 目标图像区域(targ...

weixin_42452990的博客 308

9.23华为OD机试真题 新系统 - 世界杯徽章换购 (Java/Py/C/C++/Js/Go)

9.23华为OD机试真题 新系统 - 世界杯徽章换购 (Java/Py/C/C++/Js/Go)

算法大师! 1590

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

opencv学习(四)头文件申明/main函数格式定义/程序(变量)命名规则/printf函数

1.1头文件命名 (已包含下属core等模块) 1.2简单定义main函数 1.3.1命名规则(便于他人读懂) 1.3.2常用变量命名方法 printf函数 实例:自动输出opencv版本 #include &lt;opencv2/opencv.hpp&gt; using namespace cv; void main() {...

Zeking的博客 580

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

OpenCV入门(基础篇)

3.1 Opencv命名规则1. 函数命名规则通用函数名为 cvAcitionTargetMod(…) 其中,Action表示核心函数(比如Set,Creat);           Target表示目标图像区域(比如:轮廓,多边形);           Mod表示可选变种(比如:变量类型)2. 矩阵数据类型通矩阵数据类型为 CV_(S|U|F)C 其中,S表示带符号整数

zoukangdlut的博客 4143

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Opencv笔记(1) 数据结构的命名规则(CvMat,...)

网上查了很多,发现查资料不如查源码 以Cv为开头的类,都是不含有具体数据的(仅仅存储指针) CvMat typedef struct CvMat { int type; int step; /* for internal use only */ int* refcount; int hdr_refcount; union {

Ant 1695

opencv将序列图像存储为视频

opencv读取序列图像,然后保存为视频 注意事项:序列图像命名规则及序列图像尺寸,如果设置不对会在生成视频时出错 关于编码方式最好设置参数为-1,这样会有默认编码方式选择框,自己手动设置参数可能会出错

Hello World ! 2419

OpenCV学习一

opencv基础 1.函数命名规则: cvActionTargetMod() Action表示核心函数(Set ,Create); Target表示目标图像区域(轮廓,多边形) Mod(变量类型) 2.矩阵数据类型:CV_(S|U|F)C(1|2) CV-8UC1 表示8位无符号单通道矩阵 CV_32FC2 表示32位浮...

博客 344
上一篇: STL vector的成员函数
下一篇: opencv 获得通道内RGB
Anna39
博客等级 码龄17年 32粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值