自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

moverzp的博客

Inner Peace & Keep Moving

  • 博客(54)
  • 收藏
  • 关注

原创 moverzp的博客目录

moverzp的博客目录标签: 工具 一、机器视觉学习笔记这个部分主要分享博主学习OpenCV和机器视觉的笔记,包括但不限于基本的OpenCV操作,图像处理的算法和一些典型例程。机器视觉学习笔记(1)——OpenCV配置机器视觉学习笔记(2)——基于DirectShow的多摄像头视频采集机器视觉学习笔记(3)——常见的像素访问方式机器视觉学习笔记(4)——单目摄像机标定参数说明机器视觉学习笔记(5)

2016-01-29 17:01:51 1941

原创 Kaggle练习赛Titanic手札

Kaggle练习赛Titanic手札标签: Kaggle参考资料:https://www.kaggle.com/omarelgabry/titanic/a-journey-through-titanic/comments一、Titanic练习赛介绍kaggle上面的比赛有若干种,分别是Featured,Research,Playground和101等。Featured和Research比赛可以获得奖

2016-10-21 18:19:48 2493 3

原创 基于Python查看SVD压缩图片的效果

基于Python查看SVD压缩图片的效果标签: Python 机器学习机器学习中常用的降维方法是主成分分析(PCA),而主成分分析常用奇异值分解(SVD)。那么SVD的效果到底如何呢?SVD常用来进行图像的压缩,我们就来实验一下。用到的包:PILnumpy实验载入一张彩色图片,分别对其RGB通道进行SVD分解。奇异值的占比公式为: ∑Ki=1σii∑ni=1σii\dfrac{\sum_{i

2016-08-25 21:44:59 6353 2

原创 基于物品的协同过滤算法:理论说明,代码实现及应用

基于物品的协同过滤算法:理论说明,代码实现及应用标签: 爬虫 Python主要参考资料: 项亮. 推荐系统实践[M]. 北京:人民邮电出版社, 2012.转载请注明出处:sss0.一些碎碎念从4月中旬开始,被导师赶到北京的郊区搬砖去了,根本就没有时间学习看书,这个时候才知道之前的生活是多么的幸福:每天看自己想看的书,然后实践一下,最后写博文总结一下,偶尔还能去跑个步,游个泳。想找实习的计划也泡汤了

2016-07-04 20:25:50 33843 3

原创 爬取了豆瓣11W+网页,获取了5W+有效书籍信息

爬取了豆瓣11W+网页,获取了5W+有效书籍信息标签:爬虫 Python之前写了一篇博文:利用爬虫获取豆瓣上可能喜欢的书籍,这篇博文中的爬虫可以以给定的url为原点,慢慢的向外扩散爬取书籍信息,可以获取到自己可能喜欢的书籍,但是有一个大缺点,就是只能提供一个初始url,即以一本书为基础进行推荐,而不能针对一个用户喜欢的所有书籍进行推荐。后来想了想,可以把所有的书籍信息爬取下来,然后根据推荐算法推荐书

2016-05-15 16:24:20 8580 11

翻译 使用不同的SVM对iris数据集进行分类并绘出结果

使用不同的SVM对iris数据集进行分类并绘出结果标签: 机器学习 Python译文之前的碎碎念SVM学习了也有一段时间了,公式基本都推导了一遍,明显感觉SVM的推导过程比之前学习的机器学习模型的推导过程都复杂,所以不打算自己实现SVM了,既然使用了Python,那就调用一下第三方的SVM包吧。经过一番搜索,最终决定使用scikit-learn,原因正如其主页所言:简单且高效的数据挖掘和数据分析工

2016-04-11 16:03:54 33492 3

原创 利用爬虫获取豆瓣上可能喜欢的书籍

利用爬虫获取豆瓣上可能喜欢的书籍标签: 爬虫 Python1.目标博主比较喜欢看书,购物车里面会放许多书,然后等打折的时候开个大招。然而会遇到一个问题,就是不知道什么书是好书,不知道一本书到底好不好,所以常常会去豆瓣读书看看有什么好书推荐,不过这样效率比较低。最近学习了爬虫的基础知识,有点手痒,故写一个爬取豆瓣推荐书籍的爬虫,和大家分享一下。我们给爬虫设置一个起始url,然后爬取豆瓣在该url推荐的

2016-04-05 21:39:01 9958

原创 朴素贝叶斯(naive bayes)

朴素贝叶斯(naive bayes)标签: Python 机器学习主要参考资料:《机器学习实战》《统计学习方法》1.朴素贝叶斯分类原理朴素贝叶斯法是基于贝叶斯定理和特征条件独立假设(称为朴素的原因)的分类方法。先看看维基百科中贝叶斯定理的描述: 贝叶斯定理(维基百科) 通常,事件A在事件B(发生)的条件下的概率,与事件B在事件A的条件下的概率是不一样的;然而,这两者是有确定的关系,贝叶斯定

2016-04-01 15:39:13 2752

原创 k近邻法(k-nearest neighbor)

k近邻法(k-nearest neighbor)标签: 机器学习 Python1.什么是k近邻法k近邻法是一种基本的多分类和回归的算法,常常简称为kNN。kNN在李航的《统计学习方法》中的描述如下: 给定一个训练数据集,对新的输入实例,在数据集中找到与该实例最近邻的k个实例,这k个实例的多数属于某个类,就把该输入实例分为这个类。可以用一个简单的例子说明一下kNN,二维坐标下有一些点,如图所示:

2016-03-19 16:07:37 3113

原创 梯度下降法(Gradient descent)

梯度下降法(Gradient descent)标签: 机器学习1.梯度下降法有什么用梯度下降法用来求函数的极小值,且是一种迭代算法,由于计算效率高,在机器学习中常常使用。梯度下降法经常求凸函数(convex function)的极小值,因为凸函数只有一个极小值,使用梯度下降法求得的极小值就是最小值。与其对应的有梯度上升法(Gradient ascent),用来求函数的极大值,两种方法原理一样,只是计

2016-03-13 15:09:51 14540 5

原创 小白学算法4.1——二叉查找树

小白学算法4.1——二叉查找树标签: 小白学算法1.什么是二叉查找树(Binary Search Tree)二叉查找树是一种特殊的二叉树,相对于普通的二叉树,其有如下特点: 若任意结点的左子树不空,则左子树上所有结点的值均小于它的根结点的值 任意结点的右子树不空,则右子树上所有结点的值均大于它的根结点的值 任意结点的左、右子树也分别为二叉查找树 没有键值相等的结点 二叉查

2016-03-12 15:39:49 777

原创 牛刀小试(03)——透镜扫描(网易2016研发工程师编程题)

牛刀小试(03)——透镜扫描(网易2016研发工程师编程题)标签: 牛刀小试1.题目描述在N*M的草地上,提莫种了K个蘑菇,蘑菇爆炸的威力极大,兰博不想贸然去闯,而且蘑菇是隐形的.只有一种叫做扫描透镜的物品可以扫描出隐形的蘑菇,于是他回了一趟战争学院,买了2个扫描透镜,一个扫描透镜可以扫描出(3*3)方格中所有的蘑菇,然后兰博就可以清理掉一些隐形的蘑菇.问:兰博最多可以清理多少个蘑菇?输入描述:

2016-03-05 22:00:52 2538 7

原创 小白学算法3.3——三向字符串快速排序

小白学算法3.3——三向字符串快速排序标签: 小白学算法1.三向字符串快速排序算法MSD对包含大量重复键的字符串进行排序时,效率十分低下。三向字符串快速排序可以很好的解决这个问题,其是MSD和快速排序的结合版。三向字符串快排有两个标记,第一个标记lt指向字符串集合开始位置,第二个标记gt指向字符串结束位置。首先选出第一个字符串作为切分字符串,然后从开始位置向后遍历字符串集合,如果当前字符串键值比切分

2016-03-05 20:57:09 1959

原创 OJ的输入输出问题

OJ的输入输出问题标签: 博客 工具1.引言以前接触的OJ都是直接编写一个成员函数,不需要考虑读入数据的问题。今天做了某公司2016年研发工程师的编程题,题倒是不难,但是需要考虑读入数据的问题,然后就跪在了这里……好久没接触数据的输入问题,查阅了一些资料,总结一下,以免以后再跪在这里,太委屈了。主要说一下C和C++的输入输出处理,其他语言对于输入输出的处理方法都是相通的。2.常见输入问题均以求两个输

2016-03-03 13:58:53 4984 2

原创 小白学算法3.2——高位优先字符串排序

小白学算法3.2——高位优先字符串排序标签: 小白学算法 博客本节内容总结自《算法(第4版)》5.1节1.高位优先字符串排序字符串常见的排序算法有两种,分别是低位优先(LSD)和高位优先(MSD),低位优先从右向左检查字符,高位优先从左向右检查字符。低位优先字符串排序要求待排序的字符串长度一致,然而很多时候字符串长度并不一致,低位优先排序并不适用,此时就要用到高位优先排序或者三向字符串快排。高位优

2016-03-02 17:27:11 4050

原创 小白学算法3.1——低位优先字符串排序

小白学算法3.1——低位优先字符串排序标签: 小白学算法 博客本节内容总结自《算法(第4版)》5.1节1.低位优先字符串排序相比较于数字,字符串在生活中出现的频率更高,更常用,如姓名、车牌和电话号码等,而字符串常常也需要按照一定的顺序存放(一般是ASCII顺序),此时决定顺序的键就是字符串。字符串常见的排序算法有两种,分别是低位优先(LSD)和高位优先(MSD),低位优先从右向左检查字符,高位优先从

2016-02-22 10:36:25 2670

原创 条形码识别(4)——校验

条形码识别(4)——校验标签: 机器视觉 条形码识别 Python1.目标EAN13条形码一共有13位,最后1位是校验位,该位是通过前12位按照一定的步骤计算出来的。如果按照一定的步骤处理识别出的前12位数据,如果计算结果和识别出的结果相等,识别正确;如果不相等,则重新识别或纠错再校验或提示识别失败。2.校验码计算方法以下图所示的条形码举例说明: 条形码的位数起始位为最右一位,即校验位,检验码计算

2016-01-29 15:48:57 5672 4

原创 条形码识别(3)——译码

条形码识别(3)——译码标签: 机器视觉 条形码识别 Python1.目标本节的主要目标是根据bar和space的宽度译出其所表示的字符。2.算法条形码译码常见的方法有2个:平均值译码法和相似边距离译码法。2.1平均值译码法平均值译码法先测量出从起始符到终止符的像素数M,这一段的像素数是(95=3+7*6+5+7*6+3)个单位长度,则可以计算出单位长度的像素数(unit=M/95),根据单位长度的

2016-01-29 15:09:09 7386 2

原创 条形码识别(2)——获取条形码条空(bar&space)宽度

条形码识别(2)——获取条形码条空(bar&space)宽度标签: 机器视觉 条形码识别 Python请先阅读条形码识别(1)——基础知识1.目标条形码与其表示的数字字符按照下表对应,其中1表示一个单位黑条,0表示一个单位白空比如下图就表示左侧字符1的奇数编码(A子集) 条形码从起始符到终止符一共有59个bar和space,95个单位长度获得从起始符到终止符的像素宽度,然后除以95,就可以得到单

2016-01-28 15:13:01 4763 5

原创 条形码识别(1)——基础知识

条形码识别(1)——基础知识标签: 机器视觉 条形码识别 python1.序马上就要放寒假了,老师那边貌似也没有什么任务,这一个礼拜不能闲着,思索着做一点东西练练手,看书和实践结合起来才是最有效率的。平时记下来的点子挺多:RPG游戏、爬虫、数字和字母识别等等。可惜时间不多,要是本科期间有现在学习的心思就好了……综合考虑了一下难易程度和实用性,最终选择了“条形码识别”这个目标,一方面有图像处理的知识,

2016-01-27 21:04:14 17413 2

原创 机器视觉学习笔记(10)——使用鼠标获取像素点信息

机器视觉学习笔记(10)——使用鼠标获取像素点信息标签: 机器视觉1.目标使用鼠标对关键点BGR进行采集,采集的数据有正数据和负数据,正数据是需要收集的数据,使用鼠标左键采集,采集后用绿色的圆圈表示;负数据是摈弃的数据,使用鼠标右键采集,采集后用红色的圆圈表示。2.代码实现主要通过OpenCV中的回调函数实现,采集的数据存储在data.txt中。需要注意的是,窗口横轴为X轴,竖轴为Y轴,坐标是(x,

2016-01-23 17:33:51 2378

原创 线性回归及其Python实现(最大似然法)

线性回归及其Python实现(最大似然法)标签: Python 机器学习本节内容总结于博主在牛客网机器学习特训营的笔记 参考资料:《机器学习实战》目录1.什么是线性回归 2.回归系数公式推导 3.线性回归Python实现 4.线性回归的应用 5.总结 6.附录1.什么是线性回归(Linear Regression) 维基百科:线性回归 在统计学中,线性回归是利用称为线性回归方程

2016-01-17 15:20:31 12176 2

原创 小白学算法2.A——常见排序算法比较

小白学算法2.A——常见排序算法比较标签: 小白学算法 博客1.常见算法的时间复杂度与空间复杂度 名称 平均时间复杂度 最坏时间复杂度 空间复杂度 稳定性 冒泡排序 O(N2)O(N^2) O(N2)O(N^2) O(1)O(1) 稳定 选择排序 O(N2)O(N^2) O(N2)O(N^2) O(1)O(1) 不稳定 插入排序 O(

2016-01-15 14:59:21 913

原创 机器视觉学习笔记(9)——一个双目测距的简单实例

机器视觉学习笔记(9)——一个双目测距的简单实例标签: 机器视觉1.实例目标学习OpenCV也一月有余了,遂想进行一个双目测距的简单实验,先解决从无到有,再解决锦上添花。该实例背景较为简单,目标是测量红色盖子的长和宽,左摄像机原始图如下: 2.处理流程Created with Raphaël 2.1.0开始载入相机标定参数双目拍照校正图片多次二值化,形态学处理拼接处理后的左右图片Canny提取边缘

2016-01-12 19:57:48 7296 17

原创 牛刀小试(02)——生成不重复的随机数

牛刀小试(02)——生成不重复的随机数标签: 牛刀小试1.题目描述要求生成一个随机序列,要求其中的数不能重复。2.思路解析C/C++提供了生成随机数的函数rand(),不过有两个问题该函数生成的是伪随机数该函数生成的随机数有可能重复之所以是伪随机数,是因为rand()是根据一个初始值来计算“随机数”的,如果初始值一样,则生成的“随机序列”也是一样的,所以可以通过设定随机种子来生成“真-随机数”

2016-01-08 19:50:05 1053

原创 机器视觉学习笔记(8)——基于OpenCV的Bouguet立体校正

机器视觉学习笔记(8)——基于OpenCV的Bouguet立体校正标签: 机器视觉1.什么是立体校正在机器视觉学习笔记(7)——基于OpenCV的双目摄像机标定中,我们已经计算出描述两个{camera}坐标系关系的矩阵R和T,立体校正主要就是这两个参数在发挥作用。双目摄像机系统主要的任务就是测距,而视差求距离公式是在双目系统处于理想情况下推导的,所以就要将实际的双目系统校正为理想的双目系统。理想双目

2016-01-07 15:25:26 30137 12

原创 机器视觉学习笔记(7)——基于OpenCV的双目摄像机标定

机器视觉学习笔记(7)——基于OpenCV的双目摄像机标定标签: 机器视觉本文CameraCalibrator类源代码来自于OpenCV2 计算机视觉编程手册(Robert Laganiere 著 张静 译)阅读本文之前请先阅读以下三篇博文: 机器视觉学习笔记(4)——单目摄像机标定参数说明 机器视觉学习笔记(5)——基于OpenCV的单目摄像机标定 机器视觉学习笔记(6)——双目摄像机标定参

2015-12-30 10:11:44 12980 8

原创 机器视觉学习笔记(6)——双目摄像机标定参数说明

机器视觉学习笔记(6)——双目摄像机标定参数说明标签: 机器视觉阅读本文之前请先阅读以下两篇博文: 机器视觉学习笔记(4)——单目摄像机标定参数说明 机器视觉学习笔记(5)——基于OpenCV的单目摄像机标定1.双目摄像机需要标定的参数双目摄像机需要标定的参数有摄像机内参数矩阵,畸变系数矩阵,本征矩阵,基础矩阵,旋转矩阵以及平移矩阵其中摄像机内参数矩阵和畸变系数矩阵可以通过单目标定的方法标定

2015-12-28 11:43:07 28876 8

原创 使用Git管理代码

使用Git管理代码标签: 工具1.什么是Git Git是一种分布式版本控制系统。感觉还是很抽象啊……那么请看下图: 博主很喜欢对代码进行备份,于是一个项目进展了还没有一半,光备份就10个了,最多的时候有20+备份,不仅占用空间大而且不知道具体修改的是哪些部分,直到遇到了Git。Git可以记录文件内容的变化,所以不仅占用空间小,而且整合不同成员的代码也很方便。像博主以前整个工程拷来拷去的整

2015-12-26 15:02:14 1197

原创 机器视觉学习笔记(5)——基于OpenCV的单目摄像机标定

机器视觉学习笔记(5)——基于OpenCV的单目摄像机标定标签(空格分隔): 机器视觉本文CameraCalibrator类源代码来自于OpenCV2 计算机视觉编程手册(Robert Laganiere 著 张静 译)强烈建议阅读机器视觉学习笔记(4)——单目摄像机标定参数说明之后再阅读本文1.单目摄像机标定目的单目摄像机标定的目的就是使摄像机实际状态无限接近理论推导的理想状态。单目摄像机标定最终

2015-12-16 14:24:49 20818 27

原创 机器视觉学习笔记(4)——单目摄像机标定参数说明

机器视觉学习笔记(4)——单目摄像机标定参数说明标签: 机器视觉1.针孔摄像机模型在介绍摄像机标定参数之前,需要先简单说一下针孔摄像机的原理。投影平面到小孔的距离为焦距f,物体到小孔的距离为Z,其中物体和投影是倒立相似的关系,下图为针孔摄像机的投影示意图:如果按照实际的投影关系建立坐标系,那么投影坐标和物体坐标的符号总是相反的,考虑起来不太方便,于是在“数学上”把投影平面平移到其关于小孔对称的位

2015-12-15 14:01:15 33883 10

原创 机器视觉学习笔记(3)——常见的像素访问方式

机器视觉学习笔记(3)——常见的像素访问方式标签: 机器视觉图像是由一个个像素组成的,各种算法和处理都是基于像素实现的,所以访问像素的操作是最常见的操作方式。常见的像素访问方式有Mat::at访问,指针访问和迭代器访问。为了详细的说明各个方式访问像素的方法,本文将使用不同的访问像素的方法实现Color Reduce(颜色缩减)的功能。Color Reduce可以将图像的颜色数降低,比如可以将64阶的

2015-12-12 21:07:13 2550 2

原创 小白学算法2.9——基数排序

小白学算法2.9——基数排序标签: 小白学算法1.基数排序算法基数排序的时间复杂度为O(d∗2N)O(d*2N),d表示待排序数字的位数,2N是因为分配和收集都需要O(N)O(N)的时间,空间复杂度为O(N+M)O(N+M),M表示桶的数量。假设我们要对十进制的数进行排序,那么需要10个桶表示0~9。首先从个位开始,把个位是0的数放进0号桶,个位是1的数放进1号桶……依次类推,直到把个位是9的数放进

2015-12-09 15:55:27 799

原创 小白学算法2.8——计数排序

小白学算法2.8——计数排序标签: 小白学算法1.计数排序算法计数排序是某些情况下比较快的排序算法,时间复杂度为O(N)O(N)。基于比较的排序算法时间复杂度最低就是O(NlogN)O(NlogN),故计数排序是基于非比较的算法。计数排序的使用条件限制比较多,需要对待排序的数组有一个初步的了解,比如要求的排序数据一般都是整数,且待排序的数组中最大值和最小值差值不应该过大。计数排序常常用来对年龄、身高

2015-12-09 15:07:44 1005

原创 小白学算法2.7——堆排序

小白学算法2.7——堆排序标签: 小白学算法1.堆排序算法堆排序属于高级排序,时间复杂度为O(NlogN)O(NlogN)。堆排序之所以叫堆排序是因为堆排序是基于二叉堆实现的优先队列实现的。 二叉堆的相关内容请阅读小白学算法1.3——堆 优先队列相关内容请阅读小白学算法1.4——优先队列第一阶段:构造有序的二叉堆把一个无序的堆有序化成一个二叉堆,最容易想到的一个算法就是从数组的左端向右,

2015-12-07 14:16:19 804

原创 小白学算法1.4——优先队列

小白学算法1.4——优先队列标签: 小白学算法1.什么是优先队列队列是先进先出,就像排队买东西一样,先排的人先买,后排的人后买,常见的操作是进队和出队。优先队列也像队列一样,常见的操作也是进队和出队,不过出队操作并不是把最早进入的元素出队,而是把最大或者最小的元素出队,这就是“优先队列”中“优先”的含义。优先队列的出队和入队操作常常被称为:插入元素(insert)删除最大/最小元素(delMax

2015-12-05 20:43:10 777

原创 小白学算法1.3——堆

小白学算法1.3——堆标签: 小白学算法1.什么是堆 堆是一种特殊的树形数据结构,每个结点都有一个值。通常我们所说的堆是指二叉堆。 当一棵二叉树的每个结点都大于等于它的两个子结点时,它被称为堆有序。 根节点是堆有序的二叉树中最大的结点。 二叉堆(以下简称堆)是一组能够用堆有序的完全二叉树排序的元素,在数组中按照层级存储(一般不使用第一个位置),下图是一个堆有序的完全

2015-12-03 11:47:51 795

原创 机器视觉学习笔记(2)——基于DirectShow的多摄像头视频采集

机器视觉学习笔记(2)——基于DirectShow的多摄像头视频采集标签: 机器视觉 博客1.为什么使用DirectShow笔者使用的是两个USB摄像头,单摄像头视频采集使用OpenCV的VideoCapture类没有问题,但是双摄像头就有问题,一个正常,另外一个采集不到信息,显示一片灰色。网上有种解决方法是逆序打开摄像头,结果两个窗口是可以采集到视频信息,但是竟然是同一个摄像头的视频信息,无奈的只

2015-12-03 11:09:10 8265 6

原创 机器视觉学习笔记(1)——OpenCV配置

机器视觉学习笔记(1)——OpenCV配置标签: 机器视觉1.什么是OpenCV OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。简单地说,OpenCV就是一个第三方关于视觉处理的开源库,使用该库可以采集摄像头拍摄的视频,可以处理图

2015-12-02 16:47:50 3430 1

原创 小白学算法2.6——快速排序

小白学算法2.6——快速排序标签: 小白学算法1.快速排序算法快速排序属于高级排序,时间复杂度为O(NlogN)O(NlogN),空间复杂度O(NlogN)O(NlogN)。快速排序是最快的通用排序算法。快速排序首先是选取数组中某个元素作为标准元素(一般是最左边的元素或者中间的元素),然后把小于这个元素的元素放置在数组的左边,把大于这个元素的元素放置在数组的右边,最后把左边和右边的交界处的元素和标准

2015-12-01 11:29:43 879

空空如也

空空如也

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

TA关注的人

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