自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redis基本数据结构(2)

字典dictdict的主要实现从低到高依赖以下三个数据结构://具体的hash表的一项,用指正组成一个链表typedef struct dictEntry { void *key;//键 //值,联合体,可以使多种类型的值 union { void *val; uint64_t u64; int64_t s64;

2015-10-29 19:53:44 539

原创 redis基本数据结构(1)

redis的作者为了方便自己的使用,在redis中定义了动态字符串sds,链表,字典dict,跳跃表skiplist,整数集合intset和压缩列表ziplist这六种数据结构。下文,我简要地介绍一下几种数据结构的定义。动态字符串sdssds的全称叫simple dynamic string,它的定义和注释如下struct sdshdr { //buf数组中已使用的空间的长度 uns

2015-10-27 19:23:46 506

原创 我的leveldb总结

leveldb是一个单节点的k/v数据存储系统,它的特点是写操作非常快而读操作则会慢一些。整个系统的结构图如下所示: 下面结合我自己的理解,分析一下整个leveldb工作的原理 转换流程: 如图中所示,memtable和immutable memtable以及cache是存储在内存中的数据,其中memtable和immutable memtable的结构是一样的,都是在skiplist的数

2015-10-14 14:09:13 997

原创 STL heap部分源码分析

本文假设你已对堆排序的算法有基本的了解。 要分析stl中heap的源码的独到之处,最好的办法就是拿普通的代码进行比较。话不多说,先看一段普通的堆排序的代码:

2015-08-19 12:15:32 660

原创 qt引入VS2010编译的dll

在qt中引入dll文件的时候,如果这个dll是qt编译的,直接把dll和lib文件拷到目录下,然后用#pragma comment(lib,"./xx.lib")引入这个dll就可以用里面的函数了。但是,这次我用vs2010编译了一个dll,用相同的办法,结果发现qt会报错,上论坛查了一下,发现用以下方式就可以在qt中正确引入vs2010编译的dll文件:在pro文件里加上LIBS

2015-05-14 20:40:16 1205

原创 基于RobHess源码的sift全景图像合成过程分析

在我改进的RobHess源码中,拼接的顺序大致如下: 1.读取图片,使用opencv的undistort函数来对摄像机拍摄的图片进行畸变矫正。 2.为每幅图想调用sift_features函数,检测特征点。 3.用第i幅图的特征点建立kd树,用第i+1幅图的特征点在建立好的kd树进行搜索,初步筛选出第一批特征点。 4.在之前筛选出的特征点的基础上,用RANSAC算法进行二次筛选,并计算得出每

2015-03-25 20:45:28 1195

原创 我对node js异步IO机制的理解

node js异步I/O:异步I/O理想的状态就是应用程序发起非阻塞调用,无序通过遍历或者事件唤醒等方式轮询,直接处理下一个任务,只需在I/O完成后通过信号或者回调函数将数据传递给应用程序即可。为了实现这个功能,node采用了线程池和回调函数这两个技术。首先,node里有一个观察者,和一个采用生产者/消费者的模型的事件循环,各种I/O请求作为生产者被传递到观察者那里,然后事件循环从观察者出取出事件,进行下一步处理。事件循环里取出的事件,必须伴随着事件完成的回调函数fs.open=(path,flag

2015-03-23 11:01:40 865

原创 快速高斯模糊

高斯模糊是最常见的模糊方式之一,它在机器视觉领域有广泛的应用。对一个图像做高斯模糊,就是用一个高斯窗和图像中每个点做卷积的计算,根据高斯窗大小的不同,可以得到不同精度的模糊效果。其中的主要运算过程就是卷积的运算,它涉及了大量的乘法和加法。因此,虽然高斯模糊在原理上非常简单,但在实际应用中,它却是图像处理中计算量的大头。因此,想办法去加速高斯模糊算法是非常有意义的。由于图像是二维的,所以

2015-01-14 14:50:56 2350

原创 摄像机模型与标定

为了方便自己回忆,本文从定性的角度描述了摄像机是如何把真是世界的三维坐标变成图像中的二维坐标的。光线从物体发射开始,透过透镜到达摄像机的成像平面,从而形成摄像机捕捉的图像。通过这一句话就可以简单描述摄像机捕捉图像的过程。如果你觉得这样的描述不够具体,可以参考小孔成像模型。然而,由于真是的小孔无法为快速曝光收集足够的光线,所以摄像机引入了透镜来收集更多的光线。引入透镜的过程,由于加入了仪器和透镜本身的误差,使得原本简单的几何模型变得复杂,这就是所有摄像机收集的图像都需要标定和校正的原因。

2014-12-23 13:03:31 1043

原创 连续正面的最长序列问题

设想你抛一枚硬币n次,你期望看到的连续正面的最长序列是多长?这是算法导论第四章里的一个问题,今天看了好久,才明白过来,在这里做个记录。书上从两个不同的角度分析了这个问题,一个是从概率的角度,通过计算这个序列长度的上界和下界推导出序列长度,一个是利用书上所说的指示随机变量(indicator random variable)的角度(个人理解就是期望),去分析。前者太复杂了,看了一半就晕了,这

2014-12-16 14:13:53 1545

原创 Python-OpenCV教程-8-图像金字塔融合

图像金字塔融合算法主要用在两幅图像的拼接中。两幅有重合区域的图片,如果直接个根据位置来拼接,那么由于两幅图片自身的差异,拼接完的图片上会有很明显的拼接线存在。解决这个问题,最简单的方法是对两幅图片的重合区域的像素进行加权相加(这个操作可以理解为一种羽化的处理效果)。设定一个权重w,就有公式:PB(i,j) = (1-w)*PA(i,j) + w*PB(i,j)可以计算重合区域融合后

2014-11-24 20:33:41 3268

转载 KMP算法

KMP算法        在介绍KMP算法之前,先介绍一下BF算法。一.BF算法    BF算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符,依次比较下去,直到得出最后的匹配结果。    举例说明:    S:  ababcababa

2014-10-28 21:56:00 568

翻译 Python-OpenCV教程-7

OpenCV版本要求在2.3.1以上本文主要

2014-10-19 16:04:41 936

翻译 Python-OpenCV教程-6

OpenCV版本要求在2.3.1以上本文主要介绍OpenCV中阈值函数的相关应用。1.普通阈值函数普通的阈值函数非常简单,就像它的名字的描述一样,它能让我们根据像素点的灰度值跟阈值相对比,再根据对比结果来改变这个像素的灰度值。这个函数的函数名是cv2.threshold(),它有四个输入,第一个是原图像(必须为灰度图),第二个是阈值,第三个叫maxVal,它表示如果这个点的灰度大于(有

2014-10-18 11:21:30 4946

原创 我对卷积的理解

今天在看高斯滤波的时候,突然发现用到了许多卷积的计算。趁着这个机会,上网搜搜材料,一定要把卷积的意义给记清楚。网上有一个生动的描写,转自http://blog.csdn.net/yeeman/article/details/6325693有一个七品县令,喜欢用打板子来惩戒那些市井无赖,而且有个惯例:如果没犯大罪,只打一板,释放回家,以示爱民如子。有一个无赖,想出人头地却没啥

2014-10-13 21:59:03 869

翻译 Python-OpenCV教程-5

OpenCV版本要求在2.3.1以上本文主要介绍OpenCV中颜色通道相关的操作,以及图像的旋转和平移操作等。1.改变颜色通道在OpenCV中,一共有超过150种改变颜色通道的方法,不过我们主要研究其中最重要的两个:BGR和Gray的转换和BGR和HSV的转换。转换颜色通道时,我们使用cv2.cvtColor(input_img,flag)这个函数,其中flag主要决定了转换的类型

2014-10-09 20:04:17 4473 1

翻译 Python-OpenCV教程-4

OpenCV版本要求在2.3.1以上本文主要介绍OpenCV中对图像的基本操作

2014-10-08 11:26:18 7713

翻译 Python-OpenCV教程-3

OpenCV版本要求在2.3.1以上本文主要简绍如何在Python中调用OpenCV来画图和OpenCV的鼠标回调函数的使用。1.画图在大部分画图的函数中,都会有以下几个参数,比如img是你要进行画图的图片,color是画笔的颜色,thickness和lineType是画线的粗细和线的类型(线的类型一般使用cv2.LINE_AA)。画图的过程很简单,首先,我们用numpy的函数创建

2014-10-07 14:51:02 5342 3

翻译 Python-OpenCV教程-2

OpenCV版本要求在2.3.1以上本文主要介绍如何在Python中用OpenCV读取、保存和播放一段视频流以及用OpenCV来调用摄像头。1.调用摄像头为了捕捉摄像头的画面,我们首先要生成一个VideoCapture对象,这个对象的参数可以是设备号或者是视频文件的名称。设备号可以在/dev下查看,我的摄像头的设备名称是video0,所以设备号就是0。获得了VideoCap

2014-10-02 13:51:54 3552

翻译 Python-OpenCV教程-1

OpenCV版本要求在2.3.1以上本文主要介绍如何在Python中用OpenCV来读取、显示和保存图片。1.读取图片读取图片主要使用cv2.imread()这个函数。它有两个参数,第一个是图片的路径,第二个是读取图片的格式,主要有以下参数cv2.IMREAD_COLOR:彩色模式,也可以用数字1代表cv2.IMREA_GRAYSCALE:灰度图,即数字0cv2

2014-09-30 21:38:28 3487 1

原创 树莓派中python下的opencv

在树莓派下搭建python-opencv环境非常简单使用命令sudo apt-get install python-opencv就可以安装这个环境了现在使用这个命令安装的是opencv2.4.1版本。需要说明的是2.3.1版本以上的opencv-python中,已经不在有highgui等模块了,所以网上许多旧代码中已经不适用于现在的版本。而在2.3.1及以上的opencv中,则使用cv2这

2014-09-29 20:14:29 3568

原创 Django开发综述2

Django的Template机制就是

2014-07-30 19:19:45 486

原创 Django开发综述1

Django是一个基于Python的网站开发跨

2014-07-03 19:52:21 856

转载 qt的多线程机制

转自http://blog.csdn.net/lutx/article/details/7353957

2014-06-24 12:31:59 1183

原创 K近邻法(KNN)

K近邻法(k-nearest neighbor,KNN)

2014-06-10 21:17:01 1222

原创 ROC阈值曲线

在贝叶斯分类器中

2014-06-10 18:26:41 3554

原创 隐马尔可夫模型

先说一下什么事马尔可夫lian

2014-05-21 16:42:21 1149

原创 聚类

聚类(cluster),其实就是没有训练集的qing

2014-05-20 14:59:24 1018

原创 EM算法

EM算法的全称是期望极大算法(expectation maxi)

2014-04-10 20:50:41 975

原创 极大似然估计

在机器学习的领域内,对参数

2014-04-08 21:02:42 1343

原创 泛化误差,交叉验证和特征选择

机器学习的领域内涉及了大量的智能算法。算法多了,如何评价一个算法性能的优良程度,如何为特定的问题选择一个合适的算法,这都是需要解决的问题。泛化误差要评价一个预测算法的优劣,标准无非就是比较预测结果和真实结果的差别,差别越小,这个算法性能就越好,由此给出了经验风险的表达式{1}其中,L(Y,f(X))叫做损失函数,它是用来量化真实结果Y和预测结果f(X)的区别大小的。如果

2014-04-04 14:43:10 8029

原创 一道智力题与信息熵

今天突然看到一道阿里招聘的智力题内容大概是这样的:一共有16瓶水,其中一瓶有毒,小白鼠喝了有毒的水就会在一个小时后死亡,问最少需要几只小白鼠才能在一个小时的时间里找到至少14瓶没有毒的水。一开始,我只是努力去想该怎么安排每只小白鼠喝水,可是想了很久最后,还是靠提示才知道了答案:把16瓶水分成8组,每组两瓶,这样只需要找到7组没有毒的水或者找到一组有毒的水就能满足条件了。先把8组

2014-03-27 20:48:51 1360

原创 高斯判别分析和朴素贝叶斯分类器

因为自己的数学功底非常差,所以只能从工程应用的角度来看这两个智能学习算法。分类模型分为判别模型和生成模型:判别模型的思路是我先根据已知的数据生成一个分类器,遇到要分类的对象,我们首先提取这个对象的特征,然后把这些特征放入之前的分类器中,从而得到分类结果。生成模型的思路是假定我要把所有数据分成A,B两类,那么我根据已知属于A类的数据,来生成一个代表A类的模型,再根据已知属于B类的

2014-03-26 21:04:40 4869

原创 学习scikit learn 1

ubuntu下安装scikit learn模块1.ubuntu 12.042.python2.73.输入指令sudo apt-get install python-sklearn系统就能自动安装上scikit learn所需要的所有模块。ubuntu下安装scikit learn模块1.普通的最小二乘法知道一些点的坐标,用最小二乘法拟合出一条残差最小

2014-03-20 21:35:06 1695

空空如也

空空如也

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

TA关注的人

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