摘要:
直方图定义可参考 "这里" 。图像的直方图用来表示图像像素的统计信息,它统计了图像每一个通道(如果是多通道)中,每个像素的个数(比例)。 计算直方图 OpenCV提供了直接计算直方图的函数 images:输入图像。图的depth和size必须大小相同。 nimages:输入图像个数 channels 阅读全文
摘要:
腐蚀和膨胀属于形态学操作。 腐蚀和膨胀 腐蚀是指:将卷积核B滑过图像A,找出卷积核区域内最小像素值作为锚点像素值。这一操作可以扩大低像素值区域。 膨胀是指:将卷积核B滑过图像A,找出卷积核区域内最大像素值作为锚点像素值。这一操作可以缩小低像素值区域。 通过前面的卷积可以看出,膨胀相当于“最大值”滤波 阅读全文
摘要:
锐化概念 图像平滑过程是去除噪声的过程。图像的主要能量在低频部分,而噪声主要集中在高频部分。图像的边缘信息主要也在高频部分,在平滑处理后,将会丢不部分边缘信息。因此需要使用锐化技术来增强边缘。 平滑处理的本质是图像经过平均或积分运算,锐化进行逆运算(如微分)即可。微分运算是求信号变化频率,可以增强高 阅读全文
摘要:
卷积定义 矩阵的掩码操作即对图像进行卷积。对图像卷积操作的意义为:邻近像素对(包括该像素自身)对新像素的影响;影响大小取决于卷积核对应位置值得大小。 例如:图像增强可以使用 $$ I(i,j)=5 I(i,j) [I(i 1,j) + I(i+1,j) + I(i, j 1) + I(i, j+1) 阅读全文
摘要:
DataLayer是把数据从文件导入到网络的层,从网络定义prototxt文件可以看一下数据层定义 数据层包括了文件位置、文件类型、bath_size大小、图片变换等一些参数。可以看书,datalayer之后有top,没有bottom,即它是最底层的,它的forward运算只是负责把数据填充到top 阅读全文
摘要:
在图像处理过程中,有时需要把图像调整到同样大小,便于处理,这时需要用到图像resize() 原函数 前两个参数分别为输入和输出图像。dsize表示输出图像的大小,如果为0,则 $$dsize = Size(round(fx src.cols), round(fy src.rows))$$ dsize 阅读全文
摘要:
Mat数据结构 一开始OpenCV是基于C语言的,在比较早的教材例如《学习OpenCV》中,讲解的存储图像的数据结构还是 ,这样需要手动管理内存。现在存储图像的基本数据结构是 。 Mat是opencv中保存图像数据的基本容器。其定义如下: Mat类可以表示n维的单通道或多通道数组,它可以存储实数/复 阅读全文
摘要:
下载安装 在 "这里" 下载。我下载了2.4.9的Windows版本。双击安装即可。 配置环境变量 配置环境变量的目的是为了让系统找到OpenCV的动态链接库。因此需要把动态链接库添加到系统环境变量PATH中。 在Windows下使用VS,为了方便VS中使用属性表。分两步来添加。 在系统环境变量添加 阅读全文
摘要:
神经网络是由层组成的,深度神经网络就是层数多了。layer对应神经网络的层。数据以Blob的形式,在不同的layer之间流动。caffe定义的神经网络已protobuf形式定义。例如: 就是定义了一个卷积层,bottom是其前一层,而top是其后一层。前向传播计算过程就是获取bottom的输出(Bl 阅读全文
摘要:
Blob是Caffe中层之间数据流通的单位,各个layer之间的数据通过Blob传递。在看Blob源码之前,先看一下CPU和GPU内存之间的数据同步类 ;使用GPU运算时,数据要在GPU显存中,但是一开始数据是通过CPU读到内存,通过类 来实现显存和内存之间的数据的同步。 SyncedMemory 阅读全文