自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 C++ 一些常用函数

vector(不定长数组/向量):#include vector vec;vector[0]; //使用下标访问元素;vec.front(); //取vec中的第一个元素;vec.back(); //取vec中的最末一个元素;vec.push_back(x); //在向量末尾加入元素x;vec.pop_back(); //删除末尾元素,同时向量空间减少1;v

2017-07-25 12:49:43 520

原创 数组与链表的比较

数组,在内存上给出了连续的空间.链表,内存地址上可以是不连续的,每个链表的节点包括原来的内存和下一个节点的信息(单向的一个,双向链表的话,会有两个).数组优于链表的: 1.内存空间占用的少,因为链表节点会附加上一块或两块下一个节点的信息.但是数组在建立时就固定了.所以也有可能会因为建立的数组过大或不足引起内存上的问题.2.数组内的数据可随机访问.但链表不具备随机访问

2017-07-23 20:41:55 603

原创 C++中sort排序

STL中就自带了排序函数sort,sort 对给定区间所有元素进行排序 要使用此函数只需用#include 即可使用,如下:        sort(begin,end),表示一个范围代码如下:#include int main(){ int a[20]={1,2,3,4,5,6,7,8,9}; int i; for(i=0;i<20;i++) cout<<a[i]

2017-07-23 20:18:45 414

原创 C++中 vector<vector<int>>

二维向量的输入问题: 不像二维数组那样,可以直接对 arr[i][j] 进行行循环赋值。在vector>中,因为vector是一个容器,最外层的vector容器中放着更小的vector,而里层的vector里面放的是int型的数字。所以我们首先要对里层的vector容器赋值,然后再把里层的vector作为元素插入到外层的vector中。行列的表示:e.g.: vector> array;

2017-07-18 16:32:49 3859

转载 机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)

机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2) - tony的专栏 - 博客频道 - CSDN.NET 注:机器学习资料篇目一共500条,篇目二开始更新希望转载的朋友,你可以不用联系我.但是一定要保留原文

2017-07-04 10:45:20 1092

转载 机器学习&数据挖掘笔记(常见面试之机器学习算法思想简单梳理)

前言:  找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考虑该岗位,毕竟在机器智能没达到人类水平之前,机器学习可以作为一种重要手段,而随着科技的不断发展,相信这方面的人才需求也会越来越大。  纵观IT行业的招聘岗位,机器学习之类的岗位还是挺少的,国内大点的公

2017-06-12 22:02:17 322

转载 从决策树学习谈到贝叶斯分类算法、EM、HMM

最近在面试中,除了基础 &  算法 & 项目之外,经常被问到或被要求介绍和描述下自己所知道的几种分类或聚类算法(当然,这完全不代表你将来的面试中会遇到此类问题,只是因为我的简历上写了句:熟悉常见的聚类 & 分类算法而已),而我向来恨对一个东西只知其皮毛而不得深入,故写一个有关聚类 & 分类算法的系列文章以作为自己备试之用,甚至以备将来常常回顾思考。行文杂乱,但侥幸若能对读者起到一点帮助,则幸甚至哉

2017-06-12 21:55:33 439

转载 遗传算法的例子

遗传算法的手工模拟计算示例为更好地理解遗传算法的运算过程,下面用手工计算来简单地模拟遗传算法的各    个主要执行步骤。       例:求下述二元函数的最大值:    (1) 个体编码           遗传算法的运算对象是表示个体的符号串,所以必须把变量 x1, x2 编码为一种       符号串。本题中,用无符号二进制整数来表示。           因 x1, x2 为 0 ~ 7之间

2017-06-11 21:39:41 324

转载 遗传算法(一)

遗传算法的有趣应用很多,诸如寻路问题,8数码问题,囚犯困境,动作控制,找圆心问题(这是一个国外网友的建议:在一个不规则的多边形 中,寻找一个包含在该多边形内的最大圆圈的圆心。),TSP问题(在以后的章节里面将做详细介绍。),生产调度问题,人工生命模拟等。直到最后看到一个非 常有趣的比喻,觉得由此引出的袋鼠跳问题(暂且这么叫它吧),既有趣直观又直达遗传算法的本质,确实非常适合作为初学者入门的例子。

2017-06-11 21:33:55 495

原创 有关opencv的学习(22)—霍夫变换及应用

一、霍夫变换及应用       霍夫变换(Hough Transform)是图像处理中的一种特征提取技术, 该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换的结果。       霍夫变换在OpenCV中主要分两种:                   霍夫线变换---检测直线(线段)                  霍夫圆变换---检测圆

2017-04-07 22:57:55 1224

原创 有关opencv的学习(21)—图像滤波(2)

之前介绍了用核心矩阵进行线性滤波的概念。这些滤波器通过移除或减弱高频成分,达到模糊图像的效果。下文中我们执行一种反向的变换,即放大图像中的高频成分。然后用本节介绍的高通滤波器进行边缘检测。一、边缘检测概述        边缘检测可以提取图像重要轮廓信息,减少图像内容, 可以用于分割图像、做特征提取等。        边缘检测的一般步骤:滤波----(滤出噪声対检测边缘的

2017-04-01 14:59:04 418

原创 有关opencv的学习(20)—图像滤波(1)

一、图像滤波简介     滤波实际上是信号处理的一个概念,图像可以看成一个二维信号,其中像素点灰度值的高低代表信号的强弱:     高频:图像中变化剧烈的部分     低频:图像中变化缓慢,平坦的部分     根据图像高低频特性,设置高通和低通滤波器。     高通滤波可以检测图像中尖锐、变化明显的地方,低通滤波可以让图像变得平滑,消除噪声干扰。     图像滤波是Op

2017-04-01 12:18:36 593

原创 有关opencv的学习(19)—GrabCut算法提取前景物体

OpenCV中的GrabCut算法是Graphcut算法的改进, Grabcut是一种直接基于图割算法的图像分割技术, 仅仅需要确认前景和背景输入, 该算法就可以完成前景和背景的最优分割, 算法依据《“GrabCut” - Interactive Foreground Extraction using Iterated Graph Cuts》这篇文章来实现的。该算法利用了图像中的纹理(颜色)信

2017-03-30 23:41:15 967

原创 有关opencv的学习(18)—图像的分水岭算法实现

图像的分水岭变换是一种流行的图像处理算法,用于快速将图像分割成多个同质区域。     它基于这样的思想:如果把图像看作一个拓扑地貌,那么同类区域就相当于陡峭的边缘内相对平坦的盆地。     使用图像的分水岭分割算法,函数为:      CV_EXPORTS_Wvoid watershed( InputArray image, InputOutputArray marke

2017-03-24 22:13:27 542

原创 有关opencv的学习(17)—形态学滤波器检测边缘和角点

一、图像特征类型可被分为以下三种:       边缘、角点、斑点       其中,角点是个很特殊的存在。他们在图像中可以轻易地定位,同时,他们在人造物体场景,比如门、窗、桌等出随处可见。因为角点位于两条边缘的交点处,代表了两个边缘变化的方向上的点,,所以他们是可以精确定位的二维特征,甚至可以达到亚像素的精度。且其图像梯度有很高的变化,这种变化是可以用来帮助检测角点的。需要注意的是

2017-03-23 19:30:12 842

原创 有关opencv的学习(16)—图像的膨胀和腐蚀(2)

形态学其他操作:          开运算、闭运算、顶帽、黒帽、形态学梯度 基于膨胀腐蚀基础, 利用morphologyEx()函数进行操作。核心函数为:CV_EXPORTS_W void morphologyEx(InputArray src, OutputArray dst,                                int

2017-03-20 19:02:02 644

原创 有关opencv的学习(15)—图像的膨胀和腐蚀(1)

膨胀、腐蚀属于形态学的操作, 简单来说就是基于形状的一系列图像处理操作。        膨胀腐蚀是基于高亮部分(白色)操作的, 膨胀是対高亮部分进行膨胀, 类似“领域扩张”, 腐蚀是高亮部分被腐蚀, 类似“领域被蚕食”。        膨胀腐蚀的应用和功能: (1)、消除噪声(2)、分割独立元素或连接相邻元素(3)、寻找图像中的明显极大值、极小值区域(4)、求图像的梯度。     

2017-03-19 22:20:04 444 1

原创 有关opencv的学习(14)—使用自适应阈值处理图像

使用自适应阈值处理图像:adaptiveThreshold()   对矩阵采用自适应阈值操作, 自适应阈值是根据像素的邻域块的像素值分布来确定该像素位置上的二值化阈值函数原型: CV_EXPORTS_Wvoid adaptiveThreshold(InputArray src,                                        Out

2017-03-19 18:17:18 998

原创 有关opencv的学习(13)—使用固定阈值处理图像

在对图像的处理中,我们可以使用阈值的方法创建二值图像,从而从图像当中提取出有意义元素。     代码如下:#include #include #include #include //#include "onMouse.h"using namespace cv;using namespace std;int main(){ Mat image=imre

2017-03-17 23:16:26 369

原创 有关opencv的学习(12)—积分图

取图像左上侧的全部像素计算累加和,并用这个累加和替换图像中的每一个像素,用这种方式得到的图像称为积分图像。计算积分图像时只需对图像扫描一次。这是因为当前像素的积分值等于上一像素的积分值加上当前行的累计值。因此积分图像就是一个包含像素累加和的新图像。       为防止溢出,积分图像的值通常采用int类型(CV_32S)或float类型(CV_32F)。例如下图中,积分图像的像素A包

2017-03-17 22:12:02 442

原创 有关opencv的学习(11)—有关回调函数

什么叫回调函数?回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。回调函数使用步骤:(1)、回调函数签名———在main()函数之前声明(2)、定义回调函数———在ma

2017-03-17 21:19:47 663

原创 有关opencv的学习(10)—彩色图像的直方图显示

将彩色图像分割进BGR三个通道,然后分别显示其直方图,代码如下:#ifndef ColorHistogramND_h#define ColorHistogramND_h#endif /* ColorHistogramND_h */class ColorHistogramND { private: cv::Mat image; int histSi

2017-03-12 18:11:03 670

原创 有关opencv的学习(9)—计算图像直方图

灰度图像直方图有256个项目,也叫箱子(bin)。如果把直方图所有的箱子进行累加,得到的结果就是像素的总数。若将直方图归一化,即所有的箱子累加和等于1,这时箱子的数值表示对应的像素数量占总数的百分比。代码如下:#include #include #include #include using namespace cv;using namespace std;int main

2017-03-05 18:59:14 326

原创 有关opencv的学习(8)—肤色检测

在对物体做初步检测时,颜色信息非常有用。如可用来检测皮肤的颜色,检测到的皮肤区域可作为图像中有人存在的标志。在手势识别中经常使用这个方法,用肤色检测来确定手的位置。在下面的例子中,我们将使用色调和饱和度来识别肤色,定义一个基于数值区间(最小和最大色调,最小和最大饱和度)的函数,把图像中的像素分为皮肤和非皮肤两类:完整代码如下:#include #include #include

2017-03-05 14:47:17 923

原创 有关opencv的学习(7)—图片的特效显示

之前了解了图像的HSV色彩空间,使用HSV的值可以生成一些非常有趣的效果。有些用照片编辑软件所生成的色彩特效,就是用HSV色彩空间实现的。如下,可以修改一个图像,将其所有像素设置为一个固定饱和度,不改变其色调和亮度,代码如下:#include #include #include #include using namespace cv;using namespace std;

2017-03-05 13:28:59 1689

原创 有关opencv的学习(6)—图像的HSV色彩空间

HSV色彩空间,即为用图像的色调(Hue),饱和度(Saturation),明度(Value)来描述颜色,即为颜色的直观特性。也称六角锥体模型,如下图所示:色调——表示主色:绿色,黄色,红色。用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°;饱和度——表示颜色

2017-03-04 22:38:00 1929

原创 有关opencv的学习(5)—图像的重映射

在之前的操作中,如加入椒盐噪声或是对图像进行锐化操作,都读取和修改了图像的像素值。图像的重映射是通过移动像素修改图像的外观。这个过程不会修改图像值,而是把每个像素的位置重新映射到新的位置。可以用来创建图像特效,或者修正因镜片等原因导致的图像扭曲。使用OPENCV的remap函数,首先,定义在重映射处理中使用的映射参数,然后把映射参数应用到输入图像。以下定义一个转换函数,在图像上创建波浪形的效果

2017-03-04 22:14:53 811

原创 有关opencv的学习(4)—图像的锐化

下面将要显示对Lena图的锐化效果,使用的锐化滤波器,核心矩阵为:0    -1   0-1   5   -10   -1   0对于滤波操作,在OPENCV中定义了一个函数,cv::filter2D。要使用这个函数,只需要定义一个内核--以矩阵的形式,调用函数并传入图像和内核,即可返回滤波后的图像。代码如下所示:#include #include #include

2017-03-04 21:54:37 717

原创 有关opencv的学习(3)—图像的减色算法

彩色图像由三通道像素组成,每个通道表示红、绿、蓝三原色中一种颜色的亮度值,每个数值都是8位的无符号字符类型,因此颜色总数为256 × 256 × 256,即超过1600万种颜色。因此,为了降低分析的复杂性,有时需要减少图像中颜色的数量。一种实现方法是把RGB空间细分到大小相等的方块中。例如,如果把每种颜色数量减少到1/8,那么颜色总数就变为32 × 32 × 32。将旧图像中的每个

2017-03-04 21:35:45 923

原创 有关opencv的学习(2)—在图像中加入椒盐噪声

下面的程序为对Lena图加入椒盐噪声的代码:#include #include #include #include using namespace cv;using namespace std;//加入椒盐噪声void salt(Mat image, int n){ int i,j; for (int k=0; k<n; k++) {

2017-03-04 21:02:56 4075

原创 有关opencv的学习(1)—图片显示

有关如何配置就不说啦,我使用的是Xcode+opencv2.4.13下面讲讲怎么样显示一幅图片,如下的Lena图:代码如下:#include #include #include #include using namespace cv;using namespace std;int main( ){ Mat image=imread("/Users/zhan

2017-02-24 20:54:21 402

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除