代码改变世界

C++的那些事:你真的了解引用吗

2014-04-13 21:07 by ☆Ronny丶, 5130 阅读, 13 推荐, 收藏, 编辑
摘要:一、引用的本质是什么说到引用,一般C++的教材中都是这么定义的:1,引用就是一个对象的别名。2,引用不是值不占内存空间。3,引用必须在定义时赋值,将变量与引用绑定。那你有没有想过,上面的定义正确吗?编译器是如何解释引用的?这里先给出引用的本质定义,后面我们再进一步论证。1,引用实际是通过指针实现的。... 阅读全文

C++的那些事:表达式与语句

2014-04-11 17:29 by ☆Ronny丶, 1884 阅读, 2 推荐, 收藏, 编辑
摘要:表达式1,应该把函数调用当作是一种运算符,这种运算符对参与运算的对象没有数量限制。2,关于“左值(lvalue)”和“右值(rvalue)”可以做一个简单的归纳:当一个对象被用作右值的时候,用的是对象的值(内容);当对象被用作左值的时候,用的是对象的身份(在内存中的位置)。更具体的左值与右值的举例:C++ priemr 5ed P1213,运算符的优先级规定了运算对象的组合方式,但是没有说明运算对象按照什么顺序求值,在大多数的情况下,不会明确求值的顺序,比如对于下面的表达式:int i= f1() + f2();先调用f1还是先调用f2是未知的。因此,对于这种运算符来说避免多个运算对象共同修改 阅读全文

C++的那些事:数据与类型

2014-04-11 09:47 by ☆Ronny丶, 2161 阅读, 6 推荐, 收藏, 编辑
摘要:一、前言最近在看C++Primer第5版,先前已经看过第4版,但是发现第5版在整个知识布局与个别知识的讲解上跟第4版差别还是挺大的,尤其是新增了C++11的内容,正如孟岩老师在第5版前言中所讲:“现在能够以新的C++11风格开发实践的人是凤毛麟角,如果能够纯熟的运用C++11的新特征、新机制,那么就能够形成一种简洁优雅的C++编程风络,开发会变得更高效,更高质”。所以正好借助第5版来重新学习巩固C++的知识。《C++的那些事》这个系列,将会以知识碎片的形式记录我在学习过程中一些知识重点。二、关于C++的学习个人身为C++菜鸟,自然是没有任何经验之谈,这里摘录C++Primer5ED前言里一些个 阅读全文

神经网络:卷积神经网络

2014-04-07 11:24 by ☆Ronny丶, 39751 阅读, 15 推荐, 收藏, 编辑
摘要:一、前言这篇卷积神经网络是前面介绍的多层神经网络的进一步深入,它将深度学习的思想引入到了神经网络当中,通过卷积运算来由浅入深的提取图像的不同层次的特征,而利用神经网络的训练过程让整个网络自动调节卷积核的参数,从而无监督的产生了最适合的分类特征。这个概括可能有点抽象,我尽量在下面描述细致一些,但如果要更深入了解整个过程的原理,需要去了解DeepLearning。这篇文章会涉及到卷积的原理与图像特征提取的一般概念,并详细描述卷积神经网络的实现。但是由于精力有限,没有对人类视觉的分层以及机器学习等原理有进一步介绍,后面会在深度学习相关文章中展开描述。二、卷积卷积是分析数学中一种很重要的运算,其实是一 阅读全文

图像分析:投影曲线的波峰查找

2014-03-21 21:01 by ☆Ronny丶, 22894 阅读, 5 推荐, 收藏, 编辑
摘要:1. 前言在图像分析里,投影曲线是我们经常要用到的一个图像特征,通过投影曲线我们可以看到在某一个方向上,图像灰度变化的规律,这在图像分割,文字提取方面应用比较广。一个投影曲线,它的关键信息就在于波峰与波谷,所以我们面临的第一个问题就是找到波峰与波谷。第一次涉及到求波峰与波谷时,很多人都不以为意,觉得... 阅读全文

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

2014-03-17 09:24 by ☆Ronny丶, 55729 阅读, 24 推荐, 收藏, 编辑
摘要:1. 关于OpenCV进阶之路 前段时间写过一些关于OpenCV基础知识方面的系列文章,主要内容是面向OpenCV初学者,介绍OpenCV中一些常用的函数的接口和调用方法,相关的内容在OpenCV的手册里都有更详细的解释,当时自己也是边学边写,权当为一种笔记的形式,所以难免有浅尝辄止的感觉,现在回头 阅读全文

图像分析:二值图像连通域标记

2014-03-14 00:21 by ☆Ronny丶, 89987 阅读, 16 推荐, 收藏, 编辑
摘要:一、前言二值图像,顾名思义就是图像的亮度值只有两个状态:黑(0)和白(255)。二值图像在图像分析与识别中有着举足轻重的地位,因为其模式简单,对像素在空间上的关系有着极强的表现力。在实际应用中,很多图像的分析最终都转换为二值图像的分析,比如:医学图像分析、前景检测、字符识别,形状识别。二值化+数学形... 阅读全文

神经网络:多层网络与C++实现

2014-03-09 11:16 by ☆Ronny丶, 17356 阅读, 10 推荐, 收藏, 编辑
摘要:相关源码可参考最新的实现:https://github.com/ronnyyoung/EasyML ,中的neural_network模块,后持续更新,包括加入CNN的结构。 一、引言 在前一篇关于神经网络的文章中,给出了神经网络中单个神经元的结构和作用原理,并且用梯度下降的方法推导了单个SIMGO 阅读全文

感知器与梯度下降

2014-03-07 14:40 by ☆Ronny丶, 13779 阅读, 7 推荐, 收藏, 编辑
摘要:机器学习算法 原理、实现与实践 —— 感知机与梯度下降 一、前言 1,什么是神经网络? 人工神经网络(ANN)又称神经网络(NN),它是一种受生物学启发而产生的一种模拟人脑的学习系统。它通过相互连结的结点构成一个复杂的网络结构,每一个结点都具有多个输入和一个输出,并且该结点与其他结点以一个权重因子相连在一起。通俗来说,神经网络是一种学习器,给它一组输入,它会得到一组输出,神经网络里的结... 阅读全文

C++的那些事:容器和泛型算法

2014-03-05 10:30 by ☆Ronny丶, 2151 阅读, 1 推荐, 收藏, 编辑
摘要:一、顺序容器1,标准库定义了3种类型的顺序容器:vector、list和deque。它们的差别主要在于访问元素的方式,以及添加或删除元素相关操作运算代价。标准库还提供了三种容器适配器:stack、queue和priority_queue。2,将一个容器复制给另一个容器时,类型必须匹配,包括容器类型和... 阅读全文