常见C/C++编码规范(5)

常见C/C++编码规范(5)

OpenCV 2017-05-09 浏览: 查看评论

2.4.程序正确性、效率 <规则1> 严禁使用未经初始化的变量。 引用未经初始化的变量可能会产生不可预知的后果,特别是引用未经初始化的指针经常会导致系统崩溃,需特别注意。声明变量的同时初始化,除了能防止引用未经初始化的变量外,还可能生成更高效的机器代码。 <规则2> 定义公共

常见C/C++编码规范(4)

常见C/C++编码规范(4)

OpenCV 2017-05-09 浏览: 查看评论

2.3. 可维护性 <规则1> 在逻辑表达式中使用明确的逻辑判断。 示例:如下逻辑表达式不规范。 1) if ( strlen(strName) ) 2) for ( index = MAX_SSN_NUMBER; index ; index -- ) 3) while ( p &amp;&amp; *p ) // 假设p为字符指针 应改为如下: 1) if ( strlen(strName) != 0 ) 2) fo

常见C/C++编码规范(3)

常见C/C++编码规范(3)

OpenCV 2017-05-09 浏览: 查看评论

2.2 命名 本文列出VisualC++的标识符命名规范。 <规则 1> 标识符缩写 形成缩写的几种技术: 1) 去掉所有的不在词头的元音字母。如screen写成scrn, primtive写成prmv。 2) 使用每个单词的头一个或几个字母。如Channel Activation写成ChanActiv,Release Indication写成RelInd。 3)

常见C/C++编码规范(2)

常见C/C++编码规范(2)

OpenCV 2017-05-09 浏览: 查看评论

2.2. 可理解性 2.2.1.注释 注释的原则是有助于对程序的阅读理解,注释不宜太多也不能太少,太少不利于代码理解,太多则会对阅读产生干扰,因此只在必要的地方才加注释,而且注释要准确、易懂、尽可能简洁。注释量一般控制在30%到50%之间。 <规则1> 程序在必要的地方必须有注释,注释

常见C/C++编码规范(1)

常见C/C++编码规范(1)

OpenCV 2017-05-09 浏览: 查看评论

C/C++编码规范 引言 今天人们越来越明白软件设计更多地是一种工程,而不是一种个人艺术。由于大型产品的开发通常由很多的人协同作战,如果不统一编程规范,最终合到一起的程序,其可读性将较差,这不仅给代码的理解带来障碍,增加维护阶段的工作量,同时不规范的代码隐含错误的可能性

矩形和圆的相交检测 算法分析与实现

矩形和圆的相交检测 算法分析与实现

OpenCV 2017-05-08 浏览: 查看评论

编写一个函数 int IsOnRECT(float x, float y, float r, float x1, float y1, float x2, float y2) x,y表示一个圆的圆心,r是圆的半径 x1,y1,x2,y2表示一个矩形的一条对角线上的两个顶点的坐标 矩形的四边均与坐标轴平行或者垂直 要判断这个圆和这个矩形有没有重合的部分 输入: 按

OpenCV成长之路(1)、图像的读写与显示

OpenCV成长之路(1)、图像的读写与显示

OpenCV 2017-05-08 浏览: 查看评论

一、工具篇 工欲善其事,必先利其器。学习OpenCV,肯定少不于基本的编程工具与OpenCV库。在Windows平台下你可以选择Visual Studio、CodeBlock等,当然你也可以选择在Linux平台,用VI、codeBlock都是可以的。编程平台的选择看个人爱好以及项目的开发环境。然后是OpenCV库,你可以在这里下载

OpenCV成长之路(2):图像的遍历

OpenCV成长之路(2):图像的遍历

OpenCV 2017-05-08 浏览: 查看评论

我们在实际应用中对图像进行的操作,往往并不是将图像作为一个整体进行操作,而是对图像中的所有点或特殊点进行运算,所以遍历图像就显得很重要,如何高效的遍历图像是一个很值得探讨的问题。 一、遍历图像的4种方式:at<typename>(i,j) Mat类提供了一个at的方法用于取得图像上的点,它是一个

OpenCV成长之路(3):模仿PhotoShop中魔术棒工具

OpenCV成长之路(3):模仿PhotoShop中魔术棒工具

OpenCV 2017-05-08 浏览: 查看评论

本文的主题实际上是图像的颜色空间的转换,借助一个颜色选取程序来说明OpenCV中颜色转换函数的用法以及一些注意事项。 一、几种常见的颜色空间: RGB颜色空间:RGB采用加法混色法,因为它是描述各种光通过何种比例来产生颜色。光线从暗黑开始不断叠加 产生颜色。RGB描述的是红绿蓝三色光

OpenCV成长之路(4):图像直方图

OpenCV成长之路(4):图像直方图

OpenCV 2017-05-08 浏览: 查看评论

一、图像直方图的概念 图像直方图是反映一个图像像素分布的统计表,其实横坐标代表了图像像素的种类,可以是灰度的,也可以是彩色的。纵坐标代表了每一种颜色值在图像中的像素总数或者占所有像素个数的百分比。 图像是由像素构成,因为反映像素分布的直方图往往可以作为图像一个很重要的

OpenCV成长之路(5):图像直方图的应用

OpenCV成长之路(5):图像直方图的应用

OpenCV 2017-05-07 浏览: 查看评论

正如第4篇文章所说的图像直方图在特征提取方面有着很重要的作用,本文将举两个实际工程中非常实用的例子来说明图像直方图的应用。 一、直方图的反向映射。 我们以人脸检测举例,在人脸检测中,我们第一步往往需要先提取图像中皮肤区域来缩小人脸的检测范围,这一般获得皮肤的颜色范围还需

OpenCV成长之路(6):数学形态学基本操作及其应用

OpenCV成长之路(6):数学形态学基本操作及其应用

OpenCV 2017-05-07 浏览: 查看评论

数学形态学实际上可以理解为一种滤波行为,所以很多地方称它为形态学滤波。有了个这概念,我们就能更好的理解它。我们滤波中用的滤波器(kernel)在这里被称为结构元素,结构元素往往是由一个特殊的形状构成,如:线条、矩形、圆、菱形等。我们把结构元素的中心(Anchor Point)与图像上像素点对齐,

OpenCV成长之路(7):图像滤波

OpenCV成长之路(7):图像滤波

OpenCV 2017-05-07 浏览: 查看评论

滤波实际上是信号处理里的一个概念,而图像本身也可以看成是一个二维的信号。其中像素点灰度值的高低代表信号的强弱。 高频:图像中灰度变化剧烈的点。 低频:图像中平坦的,灰度变化不大的点。 根据图像的高频与低频的特征,我们可以设计相应的高通与低通滤波器,高通滤波可以检测图像中尖锐

OpenCV成长之路(8):直线、轮廓的提取与描述

OpenCV成长之路(8):直线、轮廓的提取与描述

OpenCV 2017-05-07 浏览: 查看评论

基于内容的图像分析的重点是提取出图像中具有代表性的特征,而线条、轮廓、块往往是最能体现特征的几个元素,这篇文章就针对于这几个重要的图像特征,研究它们在OpenCV中的用法,以及做一些简单的基础应用。 一、Canny检测轮廓 在上一篇文章中有提到sobel边缘检测,并重写了soble的C++代码

OpenCV成长之路(9):特征点检测与图像匹配

OpenCV成长之路(9):特征点检测与图像匹配

OpenCV 2017-05-06 浏览: 查看评论

特征点又称兴趣点、关键点,它是在图像中突出且具有代表意义的一些点,通过这些点我们可以用来识别图像、进行图像配准、进行3D重建等。本文主要介绍OpenCV中几种定位与表示关键点的函数。 一、Harris角点 角点是图像中最基本的一种关键点,它是由图像中一些几何结构的关节点构成,很多都

OpenCV成长之路(10):视频的处理

OpenCV成长之路(10):视频的处理

OpenCV 2017-05-06 浏览: 查看评论

视频中包含的信息量要远远大于图片,对视频的处理分析也越来越成为计算机视觉的主流,而本质上视频是由一帧帧的图像组成,所以视频处理最终还是要归结于图像处理,但在视频处理中,有更多的时间维的信息可以利用。本文主要介绍OpenCV在处理视频时的一些基本函数。 一、视频帧的读取 OpenCV

OpenCV进阶之路:神经网络识别车牌字符

OpenCV进阶之路:神经网络识别车牌字符

OpenCV 2017-05-06 浏览: 查看评论

1. 关于OpenCV进阶之路 前段时间写过一些关于OpenCV基础知识方面的系列文章,主要内容是面向OpenCV初学者,介绍OpenCV中一些常用的函数的接口和调用方法,相关的内容在OpenCV的手册里都有更详细的解释,当时自己也是边学边写,权当为一种笔记的形式,所以难免有浅尝辄止的感觉,现在回头看来,很

OpenCV进阶之路:一个简化的视频摘要程序

OpenCV进阶之路:一个简化的视频摘要程序

OpenCV 2017-05-06 浏览: 查看评论

一、前言 视频摘要又称视频浓缩,是对视频内容的一个简单概括,先通过运动目标分析,提取运动目标,然后对各个目标的运动轨迹进行分析,将不同的目标拼接到一个共同的背景场景中,并将它们以某种方式进行组合。视频摘要在视频分析和基于内容的视频检索中扮演着重要角色。 视频摘要主要运用在

Opencv求两个矩形是否相交,以及相交的比值

Opencv求两个矩形是否相交,以及相交的比值

OpenCV 2017-05-06 浏览: 查看评论

在图像处理中经常会遇到判断两个矩形是否相交,以及相交的比例的情况,下面是来自TLD算法中源码的求法: [cpp]view plaincopy print? floatbbOverlap(constBoundingBox&amp;box1,constBoundingBox&amp;box2) { if(box1.x>box2.x+box2.width){return0.0;} if(box1

OpenCV学习笔记(六十二)——《OpenCV Computer Version with Python》阅读摘要

OpenCV学习笔记(六十二)——《OpenCV Computer Version with Python》阅读摘要

OpenCV 2017-05-04 浏览: 查看评论

现在Python火啊,每次OpenCV自带的ml模块都让我直呼坑爹,索性准备用python来做OpenCV后期的机器学习算法的处理。于是赶紧拿起这本书读读。 适合OpenCV和python都有一定基础的。。。。由于都比较熟悉这两个东西,我阅读之前比较关心的只有几个问题,具体的应用实例没有仔细看。 1.如何在p

OpenCV学习笔记

OpenCV学习笔记

OpenCV 2017-05-04 浏览: 查看评论

OpenCV学习笔记(一)&mdash;&mdash;安装配置、第一个程序 OpenCV学习笔记(二)&mdash;&mdash;新版本模块结构 OpenCV学习笔记(三)&mdash;&mdash;Mat,图像的新容器 OpenCV学习笔记(四)&mdash;&mdash;新版本的数据结构core OpenCV学习笔记(五)&mdash;&mdash;2.0以上版本和以下版本的数

程小技巧

程小技巧

OpenCV 2017-05-04 浏览: 查看评论

对于矩阵的结构,肯定要声明行宽和列高,但是变量的名字到底是起Row,Col好还是起Height,Width好呢,这个问题可能仁者见仁智者见智啦,我偶然发现OpenCV处理这个问题的方法有些意思,分享给大家 <spanstyle="font-size:18px;">union { introws; intheight; };

交互系统的构建

交互系统的构建

OpenCV 2017-05-02 浏览: 查看评论

交互系统的构建之(一)重写Makefile编译TLD系统 交互系统的构建之(二)Linux下鼠标和键盘的模拟控制 交互系统的构建之(三)TTS语音合成的加盟 交互系统的构建之(四)手掌与拳头检测加盟TLD

[lianlun]1[/lianlun]