自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(129)
  • 资源 (35)
  • 收藏
  • 关注

原创 CUDA学习日志:常量内存和纹理内存

在上一篇博文中,我们谈到了如何利用共享内存来实现线程协作的问题。本篇博文我们主要来谈谈如何利用常量内存和纹理内存来提高程序性能。Jeremy Lin常量内存所谓的常量内存,从它的名字我们就可以知道,它是用来保存在核函数执行期间不会发生变化的数据。NVIDIA硬件提供了64KB的常量内存,并且常量内存采用了不同于标准全局内存的处理方式。在某些情况下,用常量内存来替换全局内存可以有效地减少内存带宽。常量内存的声明方式与共享内存是类似的。要使用常量内存,则需要在变量前面加上 __constant__修饰符

2014-11-29 21:53:59 12996

原创 CUDA学习日志:线程协作与例程

在上篇博文中,我们已经用CUDA C编写了一个程序,知道了如何编写在GPU上并行执行的代码。但是对于并行编程来说,最重要的一个方面就是,并行执行的各个部分如何通过相互协作来解决问题。只有在极少数情况下,各个处理器才不需要了解其他处理器的执行状态而彼此独立地计算出结果。即使对于一些成熟的算法,也仍然需要在代码的各个并行副本之间进行通信和协作。因此,下面我们来讲讲不同线程之间的通信机制和并行执行线程的同步机制。首先,我们来看一个线程块的网格示意图:

2014-11-25 17:22:03 3243

原创 CUDA学习日志:入门例程和编程接口

上篇博文我们主要是介绍了CUDA开发环境的配置和一些学习资源。现在我们正式进入CUDA的学习。如果你还记得上篇最后有一个“Hello World”的例子,你会发现它和C程序根本没什么差。不过,从这个Hello World我们来引出CUDA编程的一个重要区别:我们将CPU以及系统的内存称为主机(host),而将GPU及其内存称为设备(device)。而上篇的Hello World和我们以前写过的代码没啥差别的原因在于它并不考虑主机之外的任何计算设备。现在我们来看看如何使用设备(device)来执行代码。在

2014-11-23 11:03:46 3950

原创 CUDA学习日志:开发环境配置和学习资源

接触CUDA的时间并不长,最开始是在cuda-convnet的代码中接触CUDA代码,当时确实看的比较痛苦。最近得空,在图书馆借了本《GPU高性能编程 CUDA实战》来看看。CUDA(Compute Unified Device Architecture)是一种专门为提高并行程序开发效率而设计的计算架构。在构建高性能应用程序时,CUDA架构能充分发挥GPU的强大计算能力。更多

2014-11-20 17:15:35 6964 1

原创 BP神经网络的C代码分析

去年在学习Stanford的ML课程的时候整理过一篇BP神经网络原理的解析,链接地址,不过没有对它的code实现作太多的解读,只是用MATLAB的工具箱做了实验。Jeremy Lin具体的原理性资料可以参考:[1] BP神经网络解析 http://blog.csdn.net/linj_m/article/details/9897839[2] Tom M.Mitchell 机器学习教从上面的算法流程可以看出来,BP神经网络的步骤并不多,如果你之前就了解BP神经网络,那么上面的流程应该还是可以很顺利地

2014-11-01 17:58:02 7006 1

原创 PGM图片格式与代码

这两天在搞神经网络,里面的一个人脸数据库的图片格式是PGM,其实之前早就知道了这个图片格式,但是没去深究这个图片格式的数据到底是什么安排的。搜索了下百度百科,发现介绍的真是简单,下面就自己来系统地整理一下。                 Jeremy Lin PGM是Portable Gray Map的缩写,它是灰度图像格式中一种最简单的格式标准。另外两种与之相近的图片格式是PBM和

2014-10-26 17:32:30 25141 1

原创 暑期开发过程中的一些经验记录

一、GDI+设置二、调试经验当利用VS2010定位出new出现泄漏后,应该在下方(不一定是当前块内)该new变量不使用后delete;三、free和delete如何知道需要释放的内存大小在利用malloc或new分配内存空间的时候,实际分配的空间会比程序员申请的空间大。实际分配的内存空间前面有一部分用于保存所分配内存的大小、校验等信息。四、Linux下调试入门之前对Linux真的是一点儿也不熟悉啊,现在在学校需要苦补。(1)Python在Linux下的调试工具winpdb,部分命令bp

2014-09-16 21:18:25 1699

原创 中值滤波的快速算法

我想学过图像处理的人没有人会不知道中值滤波的,最早的时候我是在冈萨雷斯的图像处理课本[1]中学到的,后来在看Sonka的书[2]的时候又看到了中值滤波的介绍,下面我试着结合课本所学和网上的资料自己整理一篇中值滤波的介绍。Jeremy Lin中值滤波器是一种统计排序滤波器,由Tukey于1971年在文献[3]中提出。所谓的统计排序滤波器是一种非线性的空间滤波器,它的响应基于图像滤波器包围的图像区域中像素的排序,然后用统计排序结果决定的值代替中心像素的值。除了中值滤波器外,最大值滤波器和最小值滤波器也是统计

2014-09-09 15:18:37 18123 5

原创 配置cuda环境的痛苦经历

吐槽:最近太坑爹,要配置一个服务器来验证算法,结果各种不顺~Experience1:给ubuntu安装远程桌面(xrdp)用windows的mstsc连接ubuntu需要先在ubuntu上安装 xrdp(xrdp是一个开源的远程桌面协议服务器)。安装方法:打开终端,输入命令:sudo apt-get install xrdp可能遇到的问题:用windows的mstsc连接ubuntu的xrdp时,仅显示墙纸问题。这个问题的原因是Ubuntu启动了3d桌面,导致xrdp运行异常。解决方

2014-08-17 14:43:23 4073

原创 convnet源码解析(一):基础准备

ConvNet是一个基于GPU实现的卷积神经网络开源代码(C++11),是由多伦多大学的Geoffrey Hinton深度学习团队编写的,它的最初版本是Hinton的学生Alex Krizhevsky编写的cuda-convnet(其项目地址在google code上面),最近cuda-convnet也从1.0版本更新到2.0版本(地址)。在CNN的开源代码中最出名的主要有两个,一个是Berkeley Caffe,另一个是Toronto Convnet。Berkeley的Caffe我目前还没有研究过它的代

2014-07-25 12:58:30 8175 4

原创 技术讲座:蔡学镛之架构师相关培训

今天上午去听了蔡学镛的架构师培训,PPT的题目没认真看,给忘了~在昨天下午通知前,我对蔡学镛那是一丁点儿都不了解,下面是我搜索到的一些他个人资料~,现场来看,人确实很年轻。蔡学镛,担任过创新工场首席布道师、华硕集团软件工程师、技术总监、元智大学讲师、美商欧莱礼出版社技术编辑、台湾微软杂志专栏作家、CTO、阿里巴巴集团支付宝架构师,创新工场架构师,银联移动支付首席产品架构师。他今天讲的主要东西是关于架构设计方面的内容,比较忏愧,虽然我曾经听说过这个名词,但是从未去学习过,而且在未来两三年时间内在工作上估

2014-07-19 13:22:37 2826

原创 捉虫记录:图像bug杂记25-26日

LinJMBUG 1:GDI+ Image::FromFile 无效m_pImg = Gdiplus::Bitmap::FromFile(m_imgFilePath);m_pImg为NULL原因是没有初始化GDI+。BUG2:GDI+ new Bitmap不能接受三个参数//创建目标Bitmap Bitmap *bmpDest = new Bitmap(destWidth, destHeight, m_pImg->GetPixelFormat());原因://#ifdef _DEB

2014-06-26 09:08:03 1562

原创 捉虫记录:OpenCV中的类型问题

LinJM  2014-06-05这个问题浪费了我差不多一天时间吧。我的本意是要把mag1、mag2和mag3三个梯度图叠加(取相应pixel位置的max值)。可是从下图可以看出Max图只有一部分(1~188)其余(189~484)都为黑。后来调试发现原来是像素的数据类型出错,以后涉及到OpenCV中像素值传递的时候必须要注意原始值和目标值的数据类型。

2014-06-20 13:23:51 1245

原创 Matlab与C/C++混合编程(mex文件)

Matlab是一种矩阵语言,是为vector和matrix操作设计的,这两种类型的运算速度非常快,但是当涉及到大量的循环处理时,Matlab的速度就有点慢了。因此,Matlab提供了MEX脚本来使用C/C++函数以提高循环的运算速度。 现在我们来介绍一下如何编写相应的C/C++函数以生成对应的mexw32或mexw64文件。 MEX文件的编写和编译需要两个基本条件:一是必须按照Matlab应用

2014-06-01 10:02:27 3270

原创 捉虫记录:解决内存泄漏问题

LinJM 2014_05_23解决内存泄漏问题在VS2010的Debug模式下面,点击运行,然后退出,之后会在输出框里面出现内存泄漏信息(如下图所示)。 Analysis:主要是new了之后没有delete相应的变量,所以,很明显就是要在不使用时delete掉这个变量。不过,有个问题,如下图所示:

2014-05-27 13:20:08 1680

翻译 LodePNG入门

LodePNG入门LodePNG是一个集合了PNG图像解码器和编码器的代码文件,不依赖于诸如zlib和libpng的外部链接/库,提供方便友好的PNG编解码器调用方法。LodePNG主要是采用C(ISO C90)编写的,并提供了C++的接口。LodePNG的使用只要在项目文件中包含lodepng.cpp和lodepng.h或者lodepng.c和lodepng.h就可以。

2014-05-25 18:46:42 6986 2

转载 CString Format的用法(转)

在MFC中会经常用到CString::Format。下面是我收集的一些资料。官方定义:CString::Formatvoid Format( LPCTSTR lpszFormat, ... );void Format( UINT nFormatID, ... );ParameterslpszFormatA format-con

2014-05-21 10:06:13 4204

原创 图像文件格式

最近在做有关图像格式转换的东西,以前对这一块还真有点缺失,只能周末补补。在计算机中,数据是以文件的形式存储在外存储器上的。将图像数据以文件形式保存在外存储器上就形成了图像文件,图像文件就是以数字形式存储的图像数据。图像文件一般由文件头、调色板数据和像素数据3部分组成。文件头用于存放图像文件的各种参数,这些参数表征了图像本身的许多特性;调色板是图像的颜色索引表;像素数据是图像信息的实体所在,

2014-05-11 10:50:45 1957

原创 智能指针 shared_ptr 解析

最近正在进行《Effective C++》的第二遍阅读,书里面多个条款涉及到了shared_ptr智能指针,介绍的太分散,学习起来麻烦,写篇blog整理一下。LinJM   @HQUshared_ptr是一个智能指针。在C++ 11颁布之前,它包含在TR1(Technical Report 1)当中,现在囊括在C++11的标准库中。智能指针(Smart pointers)是存储“指向动态分配(在堆上)的对象的指针”的对象。也就是说,智能指针其实是个对象。不过它的行为很像C++的内建指针,只是它们可以在适当

2014-05-05 17:04:15 3520

原创 车牌识别系统开发记录(四) 国内车牌特点

前面谈的车牌图像是国外的,现在谈谈国内的车牌。目前,中国大陆主要有四种牌照,分别是民用蓝底白字牌照、民用黄底黑字牌照、军警用白底黑字或红字牌照以及国外驻华机构用黑底白字牌照。归纳起来,车牌图像主要有如下特点:(1)虽然牌照种类较多,但牌照的尺寸、字间距、字数和字体基本统一。前车牌水平排列的7字符是等大小的,均为45mm宽,90mm高,也就是说单个号码的宽高比是1:2,而对于整个车牌

2014-04-17 16:36:25 7356 4

原创 车牌识别系统开发记录(三) 字符识别

这篇博文来谈谈车牌的字符识别。目前,车牌字符识别算法主要是基于模板匹配、特征匹配或神经网络的方法。在本文中我们主要来说说基于神经网络的字符识别方法,采用的是OpenCV中的CvANN_MLP。关于神经网络的具体细节,可以参考我以前的博文:BP神经网络解析及Matlab实现更加细节的东西可以查看如下参考文献:Neural Networks【OpenCV Documentation】BackPropWikipedia【Wikipedia】现在我们确定了字符识别的总体框架,那么先来说说字符的特征提

2014-04-15 10:33:28 9302 1

原创 内存管理内幕 - 动态分配的选择、折衷和实现

本文转载自IBM developerWorks ,英文原文链接如下:Inside memory managementJonathan Bartlett ([email protected]), 技术总监, New Media Worx简介: 本文将对 Linux™ 程序员可以使用的内存管理技术进行概述,虽然关注的重点是 C 语言,但同样也适用于其他语言。文中将

2014-04-13 10:45:20 1935

原创 车牌识别系统开发记录(二) 车牌定位

这里面我要具体介绍的检测车牌方法的步骤如下:首先利用Sobel滤波器对灰度图像进行滤波,突出图像中的垂直边缘信息利用数学形态学方法: Close(先膨胀再腐蚀,填充内部空隙)利用findContours函数寻找车牌的潜在轮廓结合车牌的长宽比例的先验知识剔除不符合的轮廓利用floodfill算法结合车牌的颜色信息提取可能的车牌区域再次结合车牌的长宽比例的先验知识剔除不符合的轮廓根据上面初步提取出可能的车牌区域,下一步利用SVM进行判断是否是车牌好了,下面一步步来分析:

2014-04-09 18:29:00 8464 6

原创 车牌识别系统开发记录(一) 系统概述

1月份的时候,我花了几天时间简单实现了车牌识别系统的部分功能。最近打算结合OpenCV的学习(SVM、ANN)来进一步解析这个系统。我前面的博文如下:基于opencv的车牌识别解析与代码 LinJM-机器视觉车辆牌照识别(License PlateRecognition, LPR)技术作为交通管理自动化的重要手段,在交通监视和控制中占有很重要的地位。它广泛应用于高速公路电子收费

2014-04-08 11:28:52 8859

原创 图像处理软件开发记录(六) 图像特效(浮雕、怀旧)

专栏地址:http://blog.csdn.net/column/details/imagep.html本篇文章主要记录一下图像处理软件中的图像特效(浮雕、怀旧、Lomo)的实现过程。图像浮雕效果浮雕的算法就是对图像中的每一个点做卷积处理,采用的掩模矩阵如下所示:[1  0  0; 0  0  0; 0  0 -1]假设原图像为X,处理后的图像为Y,也就是说,对

2014-04-01 17:22:25 4288

原创 图像处理软件开发记录(五) 图像特效(素描、油画)

本篇文章主要记录一下图像处理软件中的图像特效(素描和油画)的实现过程。图像素描效果图像素描的实现原理其实很简单,主要是利用边缘检测滤波器来实现。可供选择的边缘检测滤波器有很多,常用的有Sobel、Scharr、Laplacian以及Canny滤波。本文主要是利用Laplacian来实现素描化,它的效果相对于Sobel和Scharr更加相像素描效果。Laplacian算子是一个二阶导数算子,具有各向同性,即与坐标轴方向无关,坐标轴旋转后梯度结果不变。但是,它对噪声比较敏感,所以我们这里先利用中值滤波

2014-03-31 22:26:19 5275

原创 图像处理软件开发记录(四) 美肤功能实现

专栏地址:http://blog.csdn.net/column/details/imagep.html这一篇文章主要谈谈美肤操作。这个功能基本上很多软件都有,比如美图秀秀,女生们的最爱。美肤的原理,简单来说,其实就是图像平滑操作,不过在这个平滑的过程中最好不能把轮廓给模糊掉。美图秀秀美肤操作的技术没公开,我这里就只谈谈采用双边滤波器实现美肤的技术。关于双边滤波器的相关资料,在我的博文

2014-03-31 20:38:17 6927 2

原创 图像处理软件开发记录(三) QT图像显示

专栏地址:http://blog.csdn.net/column/details/imagep.html这一篇文章记录有关图像显示的问题。因为对QT的研究不深,所以在QT上显示图像的设计过程真是坎坎坷坷。在最开始,我用的显示方法最简单,就是用label来显示,就是下面这个:ui->label->setPixmap(QPixmap::fromImage(img))

2014-03-31 18:25:18 4370 1

原创 图像处理软件开发记录(二) 基本图像处理

专栏地址:http://blog.csdn.net/column/details/imagep.html本篇博客主要记录Image图像处理软件的基本图像处理,包括黑白图像、图像柔化、图像锐化。图像黑白化现在我们得到的大多数图像都是彩色图像,那么如果想要把它变成黑白图像,该怎么操作呢?一个简单的方法就是——利用cvtColor实现。cvtColor的原型如下:

2014-03-31 11:34:33 6268

原创 图像处理软件开发记录(一) 系统概述

专栏地址:http://blog.csdn.net/column/details/imagep.html本系列博客主要记录Image_Lin图像处理软件的开发记录。Image_Lin软件计划实现的功能包括:(一)、基本图像处理(黑白、锐化、柔化、补光)(二)、人像美容(人脸美肤)(三)、图像特效(素描、油画、浮雕、怀旧、Lomo)(四)、

2014-03-26 21:19:49 4835 3

原创 双边滤波器解析与代码

双边滤波器(Bilateral Filtering)是一种可以保边去噪的滤波器。双边滤波这个概念最初由Tomasi和Manduchi在文献[1]提出,在处理相邻各像素值的灰度值或彩色信息时,不仅考虑到几何上的邻近关系,也考虑到了亮度上的相似性,通过对二者的非线性组合,自适应滤波后得到平滑图像。这样处理过的图像在滤除噪声的同时还能够很好地保持图像的边缘信息。简单地讲:双边滤波器类似于高斯滤波器,它也是给每一个邻域像素分配一个加权系数。不过, 这些加权系数包含两个部分, 第一部分加权方式与高斯滤波一样,第二

2014-03-24 17:12:55 7706 1

原创 Flood Fill(漫水填充)算法

Floodfill算法即漫水填充法,是区域填充法的一种,其实质是种子填充法,这种方法适用于对内定义区域的填充。所谓内定义区域,是指区域内部所有像素具有同一颜色或亮度值,而区域外的所有像素具有另一种颜色或亮度值。Floodfill方法能将该区域中的全部像素都设置为新值,并通过一定的规则确定一组种子点(该种子点为区域内点),然后通过判断种子点的邻域像素是否和种子构成连通域,从而决定是否对其进行填充

2014-03-20 20:04:19 5863

原创 基本图算法(广度优先搜索和深度优先搜索)

图算法对于计算机学科至关重要。成百上千的计算问题最后都可以归约为图论问题。本文主要是对《算法导论》图算法的学习笔记进行整理。首先,我们先对图算法中的一些表达方式进行统一:给定图G=(V,E),当对该图上的一个算法的运行时间进行表述时,我们通常以图的结点数|V|和边的条数|E|作为输入的规模。另外,我们用G.V来表示图G的结点集,用G.E表示图G的边集合,也就是说,我们将结点和边看作是图的属性。

2014-03-17 17:54:46 2400

原创 如何在复杂代码中寻找BUG

来自知乎问答,看了觉得很有益,就整理过来学习一下。原始提问:快毕业的通信学生,之前正式代码经验几乎零。目前在已经给Offer的公司实习安卓开发。Mentor说先从找code base中bug开始。但是我感觉我们的codebase好复杂,这几天突然没什么进展。uml之类的也画了不少。想问问前辈们有什么建议?解答:1:来自姚冬,哥写的不是代码,是梦想我曾经做了两年大型软件的维护

2014-03-14 15:49:45 1886

原创 关于数组指针的一道题

先看下面这段小代码:#include int main(){ int a[5] = {1,2,3,4,5}; int b[100]; int *ptr = (int *)(&a+1); printf("%d\n%d\n",*(a+1),*(ptr-1)); printf("sizeof(b)=%d\n",sizeof(b)); printf("sizeof(&b)=%d\n",

2014-03-12 14:16:13 1260

原创 EM算法主观理解

一句话: EM算法的精华在于 EM——期望最大化,把一个不好MLE的问题用迭代方法解决掉,思路清晰,计算简单。首先,明确我们的目标是什么:那就是要求解一个最大似然估计问题。所谓的最大似然估计问题就是——给定一组数据和一个参数待定的模型,如何确定模型的参数,使得这个确定参数后的模型在所有模型中产生已知数据的概率最大。如果你还是对最大似然估计不了解,那么你可以参看如下的资料:

2014-03-03 22:53:40 1732

原创 libsvm代码阅读:关于svm_group_classes函数分析

upadate :2014-2-28 LinJM @HQU 『 libsvm专栏地址:http://blog.csdn.net/column/details/libsvm.html 』目前最新的version是3.17,主要的改变是在svm_group_classes函数中加了几行代码。官方的说明如下:svm_group_classes函数的功能是:group training data of the same classImportant:如何将一堆数据归类到一起,同类的连续存储!可参考这个函数。

2014-02-28 13:39:08 3671

原创 libsvm代码阅读:关于svm_train函数分析

在svm中,训练是一个十分重要的步骤,下面我们来看看svm的train部分。在libsvm中的svm_train中分别有回归和分类两部分,我只对其中分类做介绍。分类的步骤如下:统计类别总数,同时记录类别的标号,统计每个类的样本数目将属于相同类的样本分组,连续存放计算权重C训练n(n-1)/2 个模型初始化nozero数组,便于统计SV//初始化概率数组训练过程中,需要重

2014-02-24 22:19:30 9841

原创 关于operator=的自我赋值问题

今天看了一段C++Primer的代码:p506//use-counted assignment operator;use is a pointer to a shared use countSales_item&Saler_item::operator=(const Sales_item &rhs){ ++*rhs.use; decr_use(); p = rhs.p; use

2014-02-23 20:54:26 1789

原创 libsvm代码阅读:关于Solver类分析(二)

如果你看完了上篇博文的伪代码,那么我们就可以开始谈谈它的源代码了。// An SMO algorithm in Fan et al., JMLR 6(2005), p. 1889--1918// Solves://// min 0.5(\alpha^T Q \alpha) + p^T \alpha//// y^T \alpha = \delta// y_i = +1 or -1

2014-02-22 22:15:04 4641 1

内存管理内幕

内存管理内幕

2014-04-13

cvtColor函数的源代码

cvtColor函数的源代码 这个是OpenCv的cvtColor的函数源代码

2014-01-20

A Tutorial on Support Vector Regression

A Tutorial on Support Vector Regression In this tutorial we give an overview of the basic ideas underlying Support Vector (SV) machines for function estimation. Furthermore, we include a summary of currently used algorithms for training SV machines, covering both the quadratic (or convex) programming part and advanced

2014-01-16

车牌识别系统

基于OpenCV2.4.7的车牌识别系统。 Author:LinJianmin

2014-01-05

最小二乘法及数据拟合建模的回归分析

最小二乘法及数据拟合建模的回归分析 一、实验目的: 1.掌握用最小二乘建立回归数学模型。 2.学习通过几个数据拟合的回归分析来判断曲线(直线)拟合的精 度,通过回归分析来判断模型建立是否正确。 3.应用建立的模型进行预测。

2013-12-09

Fractal Fern

Fractal Fern The programs fern and finitefern in the exm toolbox produce the Fractal Fern described by Michael Barnsley in Fractals Everywhere [?]. They generate and plot a potentially infinite sequence of random, but carefully choreographed, points in the plane. The command

2013-12-01

Michael Elad 关于稀疏表示的PPT

本PPT是Michael Elad所做的关于稀疏模型的讲座PPT 题目是:The Analysis (Co-)Sparse Model ——Origin, Definition, Pursuit, Dictionary-Learning and Beyond

2013-09-04

OpenCV之_HaarTraining算法剖析

OpenCV之_HaarTraining算法剖析 通过前段时间阅读OpenCV的HaarTraining代码,基本掌握了HaarTraining算法。现将其中的算法作一梳理,同时对HaarTraining的使用方法做一简要说明。 HaarTraining算法总体上以Friedman, J. H等人的“Additive Logistic Regression: a Statistical View of Boosting”为出发点,实现了其中2类分类问题的4种Boost算法:Discrete AdaBoost, Real AdaBoost, LogitBoost 和Gentle AdaBoost。同时实现了文中第8节Additive Logistic Trees和第9节Weight Trimming. Friedman, J. H等人只描述了如何训练一个强分类器,对于训练级联的强分类器(Cascade of Classifiers),OpenCV采用的是Paul Viola等人的“Robust Real-Time Face Detection”中所述方法。 HaarTraining采用的是OpenCV扩展的Haar特征,具体描述可参考Rainer Lienhart等人的“An Extended Set of Haar-like Features for Rapid Object Detection”。

2013-08-19

MIT提供的谷歌面试训练题教程

这个是MIT专门针对谷歌的面试提供的训练题教程

2013-07-02

HOG解析与代码

HOG解析与代码 HOG(Histogram of Oriented Gradient)方向梯度直方图描述子是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。此方法使用了图像的本身的梯度方向特征。此方法类似于边缘方向直方图 (edge orientation histograms)方法,SIFT描述子和上下文形状方法,但不同的是其在一个网格密集的大小统一的方格单元上计算,而且为

2013-05-14

BP神经网络解析

BP神经网络的详细解析(包括一定的定义解析、公式推理)

2013-05-14

pixeldup.m

pixeldup.m PIXELDUP Duplicates pixels of an image in both directions. % B = PIXELDUP(A, M, N) duplicates each pixel of A M times in the % vertical direction and N times in the horizontal direction. % Parameters M and N must be integers. If N is not included, it % defaults to M. % Copyright 2002-2004 R. C. Gonzalez, R. E. Woods, & S. L. Eddins % Digital Image Processing Using MATLAB, Prentice-Hall, 2004 % $Revision: 1.4 $ $Date: 2003/06/14 16:29:54 $

2013-03-31

基于ARM9和嵌入式Linux的门禁系统软件设计

本论文设计的门禁系统对以往门禁系统进行了改进:门禁控制器既可以脱离上位机运行,也可以在上位机控制下运行,并且和上位机一样,拥有图形化操作界面,管理员能够很方便的添加和删除用户信息,设置用户权限,进行门禁控制。当上位机有问题或者网络出现异常时,门禁系统不会因此而瘫痪,仍然能够正常运行,不会给用户带来任何的不便。

2013-03-30

ATM的漏洞及代码分析

ATM的漏洞 要黑银行的ATM有两条路:编个恶意程序,直接骗过柜员机上那个漏洞百出的Windows 系统;或者先黑银行的后台系统,盗取客户信息之后再大模大样到ATM取钱。这两条路, 现在都有得走。网络安全研究人员杰克(Barnaby Jack)在美国拉斯维加斯的黑帽安全会议 (Black Hat)上原本有一个精彩的演讲,他准备演示如何入侵ATM(自动柜员机),以证明 多种不同型号的ATM 存在安全隐患。“我一直很喜欢《终结者2》的一个场景,约翰·康纳 走到一台自动柜员机前,将Atari 接入读卡器并从机器中取出大量现金。我认为已经找到了 这样做的关键。”

2012-03-16

LMS与RLS自适应滤波算法性能比较

介绍了自适应滤波器去除噪声的原理和从强噪声背景中采用自适应滤波提取有用信号的方法,并对最小均方(LMS, Least Mean Squares)和递推最小二乘(RLS, Recursive Least Squares)两种基本自适应算法进行了算法原理、算法性能分析。计算机模拟仿真结果表明,这两种算法都能通过有效抑制各种干扰来提高强噪声背景中的信号。检测特性相比之下,RLS算法具有良好的收敛性能,除收敛速度快于LMS算法和NLMS算法以及稳定性强外,而且具有更高的起始收敛速率、更小的权噪声和更大的抑噪能力。

2012-03-16

简明 Vim 练级攻略

下面的文章翻译自《Learn Vim Progressively》 ——————————正文开始—————————— 你想以最快的速度学习人类史上最好的文本编辑器VIM吗?你先得懂得如何在VIM幸存下来,然后一点一点地学习各种戏法。 Vim the Six Billion Dollar editor Better, Stronger, Faster. 学习 vim 并且其会成为你最后一个使用的文本编辑器。没有比这个更好的文本编辑器了,非常地难学,但是却不可思议地好用。 我建议下面这四个步骤: 存活 感觉良好 觉得更好,更强,更快 使用VIM的超能力 当你走完这篇文章,你会成为一个vim的 superstar。

2012-03-16

计算机网络最基本概念

计算机网络最基本概念 谢希仁 信息的传递要依靠网络,因此实现信息化离不开完善的网络。 网络已成为信息社会的命脉和重要基础。

2012-02-27

程序员面试宝典

程序员面试宝典 孔文达 微软公司顾问编写 的程序员面试宝典。

2012-02-22

《手机原理》及相关非常值得下载学习

手机原理介绍,非常值得下载学习。里面详尽地介绍了手机原理。

2011-06-30

基于DSP的静脉识别系统

基于DSP的静脉识别系统 提出了一种基于ADSP2BF533 的静脉识别系统设计方法。整个系统由静脉图像采集、静脉图像处理和识 别两个模块组成。静脉图像由普通黑白模拟摄像机在近红外光照下获取;静脉图像处理和识别的核心单元是一颗ADI 生产的Blackfin 533 DSP (ADSP2BF533) ,其速度可以满足后端处理的需要,可以实现静脉图像细化、特征提取及识别等 功能。

2010-11-07

基于Bandelet变换的手背静脉识别算法

基于Bandelet变换的手背静脉识别算法 提出一种基于Bandelet变换的手背静脉识别算法, 该算法利用Bandelet变换对静脉图 像进行特征点提取, 通过提取的特征点构造了表征静脉纹理特征的特征向量, 通过计算待识 别样本特征向量与目标样本特征向量的相关系数得出其相似度, 并在利用自制采集设备采集 的样本库上对算法进行测试, 给出了实验结果.

2010-11-07

基于2DFLD的手背静脉识别算法

基于2DFLD的手背静脉识别算法 手背静脉识别技术采用非接触式,为了避免在采集图片时由于手背的旋转和平移给识别带来干扰,提出 一种手背静脉有效区域的定位方法,在手背截取出一个包含静脉信息最多的矩形。该算法主要利用基于不变特征点 的图像定位方法来寻找手背外侧边缘的特征点,然后定位分割出手背静脉有效区域的图像。实验证明该算法具有自 适应性,定位准确,速度快。由于经典的Fisher线性判别算法类内散度矩阵通常会是奇异的,提出一种基于二维 Fisher线性判别(2DFLD)的手背静脉识别方法。该方法直接进行图像矩阵投影,避免高维运算。对于手背静脉图像 库,用2DFLD方法提取静脉特征空间,再将测试图像投影到该特征子空间上,最后用最近邻欧氏距离方法进行匹配。 实验结果表明,该方法识别率达98%。

2010-11-07

改进的手背静脉识别算法

改进的手背静脉识别算法 提出了一种基于不变矩和支持向量机的手背静脉识别算法。算法在采用修正的NiBlack 算法从原始图中分割出静脉纹 路,然后采用改进的条件细化算法进行细化获得静脉骨架的基础上,提取静脉骨架的7 个修正的几何不变矩作为支持向量机分类 器的输入进行静脉分类识别,在有500 个样本的数据库上进行实验,获得了95.5%的识别率,表明了算法的有效性。

2010-11-07

1632微机原理习题答案

1632微机原理汇编语言及接口技术课本习题答案 习题答案

2010-11-06

空空如也

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

TA关注的人

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