自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 资源 (6)
  • 收藏
  • 关注

原创 关于之前的博客内容以及更新

之前在学OpenCV的时候写了一些东西,为了巩固自己已经学到的东西,同时在本人学习的开始查阅很多资料也算是做了一个总结。现在看起来写的相当浅显。由于忙于毕业和实习等相关事宜,博客从一月份停更至今,登录博客少之又少。由于精力有限,对于在评论中提出的问题已经无力解答,还请大家见谅。本人在知乎上看到过一个写OpenCV的专栏,感觉相当不错,感兴趣的同学可以去查找一下。对于OpenCV的学习,绝对...

2018-08-05 19:56:25 1360 1

原创 重新编译TensorFlow1.4源代码支持SSE-AVX-FMA指令集 (Python3.5版本)

TensorFlow运行出现以下信息说明工作站支持这些指令集但编译的时候并没有加入 W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn’t compiled to use SSE4.1 instructions, but these are available on your machine

2018-01-23 14:34:11 2672

原创 腾讯2017秋招笔试编程题之素数

题目描述: 给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000。 如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))问题分析: 1. 明确素数的概念,素数即除了能被1和本身整除外,不能被其他数整数的自然数 2. 题目中限定输入为正整数,故可使用int类型变量接受输入值,对于正整数和小于1000的限定

2017-08-31 23:07:10 3630 2

原创 Ubuntu16.04-64bit+TensorFlow1.2 安裝

TensorFlow是Google的一个开源机器学习框架,官网:https://www.tensorflow.org/ 里面有详细的教程和API说明,我在虚拟机上装的TensorFlow所以不支持CUDA版本的TensorFlow安装。TensorFlow安装方式TensorFlow官网介绍了四种安装方式virtualenv常见的pip安装DockerAnaconda官方建议采用virt

2017-07-01 15:57:52 14372 1

原创 opencv提高之人脸检测

上一篇介绍了cascade分类器的训练,这里给出训练好的xml文件进行人脸检测的代码(由于眼睛发炎不能长时间看电脑屏幕,以后补详细介绍)#include <iostream>#include <opencv2\core\core.hpp>#include <opencv2\highgui\highgui.hpp>#include <opencv2\imgproc\imgproc.hpp>#i

2017-05-04 17:46:51 3436 2

原创 opencv提高之cascade分类器训练人脸检测模型

1.概述在opencv中有两个类型的分类器:opencv_haartraining和opencv_traincascade,后者是2.x版本中基于C++写的新版本的分类器。二者最主要的区别是opencv_traincascade支持Haar和LBP。LBP在训练和检测方面要比Haar特征快数倍。Haar和LBP的检测质量取决于要训练的数据和训练的参数设置。 opencv_traincascade与

2017-04-22 12:11:04 10752 8

原创 opencv之SURF图像匹配

1.概述前面介绍模板匹配的时候已经提到模板匹配时一种基于灰度的匹配方法,而基于特征的匹配方法有FAST、SIFT、SURF等,上面两篇文章已经介绍过使用Surf算法进行特征点检测以及使用暴力匹配(BruteForceMatcher)和最近邻匹配(FLANN)两种匹配方法。接下来将更深一步介绍利用Surf检测到的特征点以及匹配对进行图像匹配. 利用Surf算法进行图像匹配其一般流程为:检测物体特征点

2017-04-19 14:04:11 22758 1

原创 opencv之SURF特征点提取及匹配

1.概述在基于特征匹配的方法中,Surf算法对物体的旋转、光照等情况有较好的鲁棒性,且教SIFT算法而言计算速度更快。通过Surf算法检测到的特征点其描述符包含了这个点的位置和尺度信息,故对两幅图片进行匹配时可以通过两幅图中特征点匹配对进行匹配。即使物体位置和光照的改变也能够有良好的匹配效果。 在本片文章中将使用SurfDescriptorExtractor及其函数compute来完成特定计算,使

2017-04-18 18:54:16 19564 4

原创 opencv之SURF算法原理及关键点检测

1.概述在基础篇里面讲模板匹配的时候已经介绍过,图像匹配主要有基于灰度和基于特征两种方法。基于特征匹配的方法有很多种如:FAST、HARRIS、SIFT、SURF、SUSAN等。其中SIFT算法由D.G.Lowe于1999年提出,2004年完善总结。SIFT是一种鲁棒性好的尺度不变特征描述方法,但SIFT算法计算数据量大、时间复杂度高、算法耗时长。针对上述缺点许多研究者对SIFT算法做了不同的改进,

2017-04-18 10:51:54 20657 4

原创 opencv学习(四十四)之图像角点检测Harris

1.概述角点是图像很重要的特征,对图像图形的理解和分析有很重要的作用,在保留图像图形重要特征的同时,可以有效减少信息的数据量,使信息的含量很高,有效提高计算速度,有利于图像的可靠匹配,使得实时处理成为可能。在物体识别、图像匹配、视觉跟踪和三维重建等方面有很重要的应用。 角点可以认为是窗口向任意方向的移动都导致图像灰度的明显变化。从图像分析的角度来定义角点可以有一下两种: 1.角点可以是两个边缘的

2017-04-17 10:23:02 3701 1

原创 opencv学习(四十三)之图像的矩moments()

1.概述图像识别的一个核心问题是图像的特征提取,简单描述即为用一组简单的数据(数据描述量)来描述整个图像,这组数据月简单越有代表性越好。良好的特征不受光线、噪点、几何形变的干扰,图像识别技术的发展中,不断有新的描述图像特征提出,而图像不变矩就是其中一个。从图像中计算出来的矩通常描述了图像不同种类的几何特征如:大小、灰度、方向、形状等,图像矩广泛应用于模式识别、目标分类、目标识别与防伪估计、图像编码与

2017-04-16 18:56:41 81803 4

原创 opencv学习(四十二)之多边形包围图像轮廓

首先介绍一个逼近多边形的函数approxPolyDP(),其定义如下:void cv::approxPolyDP ( InputArray curve, OutputArray approxCurve, double epsilon,

2017-04-16 12:40:25 11401

原创 opencv学习(四十一)之寻找凸包convexHull()

1.概述凸包(Convex Hull)是一个计算几何(图形学)中的概念,在一个实数向量空间V中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包。 X的凸包可以用X内所有点(x1, x2….xn)的线性组合来构造。在二维欧几里得空间中,凸包可以想象为一条刚好包着所有点的橡皮圈,用不严谨的话来讲,给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边形,它能包含点集中所有的点。常见的有

2017-04-16 10:34:41 42354 3

原创 opencv学习(四十)之寻找图像轮廓findContours()

1.概述在这篇文章中介绍如何使用findContours()函数寻找图像中物体的轮廓,在OpenCV中没有给出findCountours()函数的原理,如果想了解查找轮廓原理,可以翻**墙出去Google”Topological structural analysis of digitized binary images by border following”,这里就不一一翻译了.2.APIope

2017-04-15 16:29:46 87187 2

原创 opencv学习(三十九)之反向投影calcBackProject()

1.概述反向投影是一种记录给定图像中的像素点如何适应直方图模型像素分布的方式,简单来讲,反向投影就是首先计算某一特征的直方图模型,然后使用模型去寻找图像中存在的特征。反向投影在某一位置的值就是原图对应位置像素值在原图像中的总数目。2.反向投影原理原理采用OpenCV docs介绍!使用肤色直方图来解释反向投影的工作原理。假设我们已经获得一个肤色直方图(Hue-Staturation),旁边的直方图就

2017-04-13 09:55:43 25287 3

原创 opencv学习(三十八)之图像模板匹配matchTemplate()

1.概述利用计算机视觉技术对图像进行处理,通常会用到图像的匹配,图像匹配是指图像之间的比较,得到不同图像之间的相似度,在机器识别的过程中把不同传感器或同一传感器在不同时间、不同成像条件下对同一景物获得的两幅或多幅图像在空间上对准,或根据已知模式到另一幅图中寻找对应的模式。匹配方法大体分为基于灰度和基于特征两类,其中基于特征的配准方法研究较多。 基于灰度的模板匹配方法原理简单且在光照良好的条件下可以

2017-04-11 12:01:24 21262 5

原创 Python中基本数据存储结构列表、元组和字典

在Python的学习中我们看到Python有列表、元组和字典三种基本的数据存储结构,下面对着三种结构做一个总结1. 列表(list)列表在Python中是一个任意类型对象位置的相关有序集合,它没有固定大小,根据数据量的不同可以动态变化。可以对列表中的数据进行赋值、修改、添加、删除等操作。与C\C++中一维数组类似,其索引index是从0开始的而不是从1开始的。可以对列表进行索引、切片、分割等操作。

2017-04-09 12:45:56 8926

原创 Linux-Ubuntu16.04重新编译vim8.0支持Lua,Python3和YouCompleteMe

1.首先安装 依赖项如下:sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev \ libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \ libcairo2-dev libx11-dev libxpm-dev libxt-dev python-dev \ py

2017-04-08 22:41:09 8204

原创 Linux-ubuntu16.04 Python3.5配置OpenCV3.2

1.OpenCV下载 首先创建一个空的文件夹,进入文件夹执行如下命令,如我创建的文件夹是opencv-pythoncd opencv-pythongit clone https://github.com/opencv/opencv.git也可以直接进入网址OpenCV_Download下载 使用git下载后应有一个名字为opencv的文件夹,进入文件夹执行如下命令:cd opencvmkdi

2017-03-23 19:12:27 9624 4

原创 Linux-Ubuntu16.04下Python3.5安装pip3以及scrapy、numpy、itchat

Python3.x库安装

2017-03-23 10:03:36 77527

原创 opencv学习(三十七)之图像直方图计算calcHist()

图像直方图是对数据集合的一种统计方法,将统计结果分布于一系列预定义的bin中,bin是直方图中经常用到的一个概念,其数值是从数据中计算出的特征统计量,这些数据不仅仅指的灰度值,统计数据可能是任何能有效描述图像的特征包括梯度、方向、色彩或任何其他特征。直方图获得的是数据分布的统计图,通常直方图的维数要低于原始数据。 图像直方图是用以表示数字图像中亮度分布的直方图,标绘了图像中亮度值的像素数。可以借助

2017-02-25 20:59:36 29757 8

原创 opencv学习(三十六)图像直方图均衡化equalizeHist

图像直方图描述了图像中灰度值的分布情况,直方图均衡化就是通过拉伸像素强度分布范围来增强图像对比度的一种方法。如下图: 可以看到像素主要集中在中间的一些强度值上。直方图均衡化要做的就是拉伸这个范围。如下: 作途中绿色圈圈出了少有像素分布其上的强度值,对其应用均衡化后得到中间图所示的直方图,均衡化后的图像见上右图。直方图均衡化是通过使用累积函数对灰度值进行“调整”以实现对比度的增强,其中心思想是把原

2017-02-22 22:51:47 9886 3

原创 opencv学习(三十五)之仿射变换warpAffine

1.仿射变换介绍仿射变换是指在向量空间中进行一次线性变换(乘以一个矩阵)并加上一个平移(加上一个向量),变换为另一个向量空间的过程。在有限维的情况下,每个仿射变换可以由一个矩阵A和一个向量b给出,它可以写作A和一个附加的列b。一个仿射变换对应于一个矩阵和一个向量的乘法,而仿射变换的复合对应于普通的矩阵乘法,只要加入一个额外的行到矩阵的底下,这一行全部是0除了最右边是一个1,而列向量的底下要加上一个1

2017-02-22 10:50:41 98818 12

原创 opencv学习(三十四)之重映射remap

重映射就是把一个图像中一个为之的像素放置到另一个图片指定位置过程。为了完成重映射过程有必要获得一些插值作为非整数像素坐标,因为原图像与目标图像的像素坐标不是一一对应的。我们通过重映射来表达每个像素的位置(x, y): g(x, y)=f(h(x,y)) 这里g()是目标图像,f()是原图像,h(x,y)是作用于(x,y)的映射方法函数。假设有一幅图像I,满足下面条件作重映射: h(x,y)=(

2017-02-21 20:43:33 18501 4

原创 opencv学习(三十三)之霍夫变换

1.霍夫变换综述霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法。主要用来从图像中分离出具有某种相同特征的几何形状。最基本的霍夫变换是从黑白图像中检测直线。在图像处理中可以通过霍夫变换可以快速的检测出直线或圆。2.霍夫线变换opencv提供三种不同的霍夫线变换分别是:标准霍夫变换(Standard Hough Transform, SHT)、多尺度霍夫 变换(Mu

2017-02-20 22:48:05 5342 1

原创 opencv学习(三十二)之图像边缘检测Soble_Laplace_Canny

1. Sobel算子前面我们已经介绍了图像的卷积操作,而一个最重要的卷积运算就是对导数的计算,假设我们需要检测图像中的边缘部分,如下图所示: 前面我们介绍图像的高频和低频分量的时候说到,图像的高频分量一般出现在像素值显著改变的地方,而高频分量的出现就容易勾画出图像的轮廓。在高等数学中我们知道函数变化剧烈其所对应的导数值越大(极大值),所以表示图像像素值改变最大的一个方法就是求出图像的导数。其梯

2017-02-20 10:08:39 5345

原创 Linux下gdb调试用法命令

一直在Fedora平台下写opencv的程序,需要对程序进行调试,主要用的调试工具是gdb. gdb提供了如下功能:1.在程序中设置断点,Debug时遇到断点处暂停2.可以监视某个变量,并利用print函数将该变量的值打印出来3.程序可step-by-step执行4.运行时修改变量的值5.跟踪路径6.线程切换等 下面结合OpenCV针对C\C++程序使用gdb调试进行介绍。

2017-02-15 22:32:00 33601

原创 opencv学习(三十一)之图像边缘像素填充估计copyMakeBorder()

前面讲到图像卷积运算的时候涉及到对图像边缘像素的估计,这里讲介绍图像边缘像素进行卷积运算。大部分opencv中的函数是将原图像复制到一个比原图像尺寸更大的图像中然后实现边缘的自动填充。这种方式得到的像素点可以执行卷积操作。下面介绍两种方式: - 1.BORDER_CONSTANT:使用一个常数填充像素边缘 - 2.BORDER_REPLICATE:将图像中边缘的行和列像素值直接填充像素边缘 o

2017-02-15 17:55:26 9199

原创 opencv学习(三十)之设计线性滤波器filter2D

前面在介绍高斯滤波器的时候我们提到是使用高斯滤波模板kernel与原图像卷积以达到滤波的效果。通常来讲,卷积操作发生于图像的每一个部分与kernel进行卷积运算,kernel就是一个含有锚点的常数数字,这个锚点通常位于kernel的中心位置。如下图所示:kernel是怎么进行卷积运算的的?假设你想知道图像特定位置的像素经过与kernel卷积运算后的值,遵循以下步骤: (1). 将kerne

2017-01-20 16:08:09 5263

原创 opencv学习(二十九)之灰度图转化为二值图adaptiveThreshold

针对图像的阈值操作,opencv除了提供threshold函数也提供了adaptiveThreshold()函数,从字面意思可以翻译为自适应阈值操作,函数的主要功能是将灰度图转化为二值图像。其函数原型如下:void cv::adaptiveThreshold ( InputArray src, OutputArray dst, double maxValue, int

2017-01-20 12:12:05 6523

原创 opencv学习(二十八)之基本图像阈值操作threshold

在二维数字图像中,其每个像素点对应了不同的像素值,其像素值各不相同。可以对像素值特定范围内的图像图像进行操作,划分这个范围的值就被称为图像阈值,它不是一个固定的量级,是根据每幅图像和处理要求动态改变。例如我们可以从图像中利用阈值分割出我们需要的部分,利用其像素值与背景在灰度特性上的差异,图像具有了不同的灰度等级,可据此指定一个合理的阈值从而确定图像中的像素值是否属于这个区域。所以其是像素操作的一种

2017-01-20 11:06:08 19600 1

原创 opencv学习(二十七)之图像缩放函数resize

上一篇介绍了分别利用高斯金字塔和拉普拉斯金字塔结合opencv提供的pyrDown和pyrUp函数实现了图像的缩放,opencv还提供了另外一种图像缩放函数resize()实现对输入图像缩放到指定大小,其函数原型如下:void cv::resize ( InputArray src, OutputArray dst, Size dsize, double fx =

2017-01-20 10:54:53 31055 1

原创 opencv学习(二十六)之图像金字塔(高斯金字塔、拉普拉斯金字塔)

在进行数字图像处理时,我们可能会需要将某种尺寸的图像转换为其他尺寸的图像,这样会存在放大图像核缩小图像两种可能。opencv提供了一个真正意义上的图像所方函数resize(),但在本篇中主要学习以下使用图像金字塔进行图像的所方,图像金字塔是视觉运用较为广泛的一项技术。 一个图像金字塔是一系列图像的集合,所有图像来源于同一张原始图像,通过梯次向下采样获得,直到达到某个终止条件才停止采样。通常有两种类

2017-01-17 23:51:07 11643

原创 opencv学习(二十五)之开运算、闭运算、形态梯度、顶帽、黑帽

上一篇介绍了形态学的基本操作膨胀和腐蚀,我们这一篇将利用膨胀和腐蚀操作实现对图像更高级的形态学操作,而这些都是建立在膨胀和腐蚀操作基础之上。 首先形态学的主要用途是获取物体拓扑和结果信息,它通过物体和结构元素的某些运算,得到物体更本质的形态,在图像处理中的主要应用有: (1). 利用形态学的基本运算对图像进行观察和处理,从而达到改善图像质量的目的 (2). 描述和定义图像的各种几何参数和特征如

2017-01-17 11:51:35 20574

原创 opencv学习(二十四)之腐蚀与膨胀

腐蚀和膨胀是对二维图片的进行操作的形态学运算,简单来讲形态学操作就是基于形状的一系列图像处理操作,通过将结构元素作用于输入图像来产生输出图像。腐蚀(Erosion)和膨胀(Dilation)是最基本的形态学操作,他们运用广泛主要有: . 消除噪声 . 分割(ioslate)独立的图像元素以及连接(join)相邻的元素 . 寻找图像中的明显的极大值区域或极小值区域

2017-01-16 17:35:27 5942

原创 opencv学习(二十三)之方框、均值、高斯、中值、双边滤波综合比较

/* *本程序的目的旨在对前面介绍的滤波器进行一个比较 *对比每种滤波器的滤波效果和耗时 *除双边滤波外其他滤波器kernel均是5*5或5 *对于双边滤波器取其直径典型值25 *sigmaColor和sigmaSpace的值均由直径计算而来*/#include <iostream>#include <opencv2/core.hpp>#include <opencv2/highgu

2017-01-14 22:39:52 3568

原创 opencv学习(二十二)之双边滤波bilateralFilter

双边滤波是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空间与信息和灰度相似性,达到保边去噪的目的,具有简单、非迭代、局部处理的特点。之所以能够达到保边去噪的滤波效果是因为滤波器由两个函数构成:一个函数是由几何空间距离决定滤波器系数,另一个是由像素差值决定滤波器系数。 双边滤波器中,输出像素的值依赖于邻域像素的值的加权组合,其公式如下: 权重系数w(i,j

2017-01-14 18:35:00 64259 8

原创 opencv学习(二十一)之中值滤波medianBlur

中值滤波是一种典型的非线性滤波,是基于排序统计理论的一种能够有效抑制噪声的非线性信号处理技术,基本思想是用像素点邻域灰度值的中值来代替该像素点的灰度值,让周围的像素值接近真实的值从而消除孤立的噪声点。该方法在取出脉冲噪声、椒盐噪声的同时能保留图像的边缘细节。这些优良特性是线性滤波所不具备的。 中值滤波首先也得生成一个滤波模板,将该模板内的各像素值进行排序,生成单调上升或单调下降的二维数据序列,二维

2017-01-14 16:49:16 69235 8

原创 opencv学习(二十)之高斯滤波GaussianBlur()

高斯滤波是一种线性平滑滤波,对于除去高斯噪声有很好的效果。在其官方文档中形容高斯滤波为”Probably the most useful filter”,同时也指出高斯滤波并不是效率最高的滤波算法。高斯算法在官方文档给出的解释是高斯滤波是通过对输入数组的每个点与输入的高斯滤波模板执行卷积计算然后将这些结果一块组成了滤波后的输出数组,通俗的讲就是高斯滤波是对整幅图像进行加权平均的过程,每一个像素点的值

2017-01-14 10:46:55 108966 2

原创 opencv学习(十九)之均值滤波blur

从本篇开始采用opencv3.2版本进行编译!!!均值滤波是一种典型的线性滤波算法,主要是利用像素点邻域的像素值来计算像素点的值。其具体方法是首先给出一个滤波模板kernel,该模板将覆盖像素点周围的其他邻域像素点,去掉像素本身,将其邻域像素点相加然后取平均值即为该像素点的新的像素值,这就是均值滤波的本质。官方给出的kernel模板如下: opencv提供了blur函数实现均值滤波操作,其原型

2017-01-12 22:32:01 19050

Yale耶鲁大学人脸识别正样本数据库

耶鲁大学人脸检测识别正样本数据库

2017-03-27

STM32F103C8T6库Altium Designer

库包含STM32103C8T6、JTAG_20、AMS1117-3.3和MPU9250,没有封装库,只有原理图

2017-03-20

Python3.5函数API离线查询手册html版

Python3.5函数API离线查询手册html版

2017-03-17

Matlab2015B_Crack_破解文件

本工具仅限学习交流体验使用,下载激活后请于24h内删除,购买正版软件!!! 1.安装之前用crack提供的install.jar替换解压缩后的matlab文件下 \java\jar下的install.jar 2.在Matlab 2015b_info文件中找到对应Matlab版本安装序列号 3.选择不联网激活,输入crack文件夹下Matlab_R2015B.license文件 4.将crack提供的bin、etc、toolbox下的文件替换安装目录下的对应文件 5.激活成功 同样适用于matlab2015、2014、2013等版本

2016-12-08

Qt实现多功能计算器

使用Qt除了实现普通的四则运算外,实现开方、平方、倒数等运算,四则运算支持连续运算,实现浮点数运算。代码不够完美,可供初学者练手参考,因为我也是初学!

2016-07-06

C语言指针实现密码的设置、校对及登录

使用C语言实现密码的输入,检验输入密码是否符合设置的密码规则,做出判断。设置密码后需再次输入密码进行校验,校验通过后,密码设置成功。

2015-11-21

空空如也

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

TA关注的人

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