飞夺泸定桥

我心飞扬

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2011年12月30日

摘要: http://blog.sina.com.cn/s/blog_4b9b714a0100is4f.htmlhttp://blog.sina.com.cn/s/blog_4b9b714a0100is5k.html 阅读全文
posted @ 2011-12-30 13:43 飞夺泸定桥 阅读(427) 评论(0) 推荐(0) 编辑

2011年9月20日

摘要: 新建项目->Visual C++->win32->Win32项目->输入项目名称->next->应用程序类型选dll,附加选项选上“导出符号”,添加公共头文件视情况可以加上MFC->完成。 此时生成的项目有示例代码,可以在原来的代码上修改。 需要注意的是: #define 项目名_API extern "C" _declspec(dllimport) 原来的宏定义可能不包括extern "C",加上可以被C#等语言调用。 在C#中调用的时候,把dll放到目录中, using System.Runtime.Inte 阅读全文
posted @ 2011-09-20 08:51 飞夺泸定桥 阅读(2211) 评论(0) 推荐(1) 编辑

2011年9月14日

摘要: 一些信息熵的含义(1) 信息熵的定义:假设X是一个离散随即变量,即它的取值范围R={x1,x2...}是有限可数的。设pi=P{X=xi},X的熵定义为: (a)若(a)式中,对数的底为2,则熵表示为H2(x),此时以2为基底的熵单位是bits,即位。若某一项pi=0,则定义该项的pilogpi-1为0。(2) 设R={0,1},并定义P{X=0}=p,P{X=1}=1-p。则此时的H(X)=-plogp-(1-p)log(1-p)。该H(x)非常重要,称为熵函数。熵函数的的曲线如下图表示:再者,定义对于任意的x∈R,I(x)=-logP{X =x}。则H(X)就是I(x)的平均值。此时的I( 阅读全文
posted @ 2011-09-14 08:52 飞夺泸定桥 阅读(13410) 评论(3) 推荐(1) 编辑

2011年8月20日

摘要: (1)以下matlab代码实现了高斯混合模型:function [Alpha, Mu, Sigma] = GMM_EM(Data, Alpha0, Mu0, Sigma0)%% EM 迭代停止条件loglik_threshold = 1e-10;%% 初始化参数[dim, N] = size(Data);M = size(Mu0,2);loglik_old = -realmax;nbStep = 0;Mu = Mu0;Sigma = Sigma0;Alpha = Alpha0;Epsilon = 0.0001; while (nbStep < 1200) nbStep = nbStep+ 阅读全文
posted @ 2011-08-20 12:24 飞夺泸定桥 阅读(32569) 评论(5) 推荐(5) 编辑

2011年8月18日

摘要: 你写一个程序,在命令行上 EXE>out.txt只要EXE里面的任何输出都在out.txt里面EXE<out.txt 只要EXE程序中有任何输入都是从out.txt 里面取其实你只要按照一般的写法来写程序就可以了,只是在使用时,使用CMD的定向输入和输出就行了............out.txt内容为10..........程序如下int i;cin<<i;........运行时exe<out.txt那个i就自动为10 阅读全文
posted @ 2011-08-18 14:15 飞夺泸定桥 阅读(494) 评论(0) 推荐(0) 编辑

摘要: 批量提取文件名的办法 命令提示符下: (开始/运行/CMD) tree (要获得文件名的文件夹的路径)/f >(存放的路径/filename) 例如:要获得D盘下的所有文件的文件名,并将生成的文件保存到E盘,可使用如下命令 tree□D:□/f>E:/contents.txt “□”代表一个空格 PS:可以先在记事本中写好,将其粘贴到cmd.exe程序中。 例:将下列复制到cmd.exe中即可 tree F:\consult咨询 /f>d:/consult.xls tree d:\[A]Eook /f>d:/ebook.xls 阅读全文
posted @ 2011-08-18 14:14 飞夺泸定桥 阅读(1216) 评论(0) 推荐(0) 编辑

2011年6月16日

摘要: 粒子滤波实现物体跟踪的算法原理: 1)初始化阶段-提取跟踪目标特征该阶段要人工指定跟踪目标,程序计算跟踪目标的特征,比如可以采用目标的颜色特征。具体到Rob Hess的代码,开始时需要人工用鼠标拖动出一个跟踪区域,然后程序自动计算该区域色调(Hue)空间的直方图,即为目标的特征。直方图可以用一个向量来表示,所以目标特征就是一个N*1的向量V。2)搜索阶段-放狗好,我们已经掌握了目标的特征,下面放出很多条狗,去搜索目标对象,这里的狗就是粒子particle。狗有很多种放法。比如,a)均匀的放:即在整个图像平面均匀的撒粒子(uniform distribution);b)在上一帧得到的目标附近按照 阅读全文
posted @ 2011-06-16 01:53 飞夺泸定桥 阅读(4081) 评论(1) 推荐(4) 编辑

2011年6月14日

摘要: 详细总结sift算法的思路和各个部分的细节 阅读全文
posted @ 2011-06-14 20:25 飞夺泸定桥 阅读(121898) 评论(14) 推荐(24) 编辑

2011年6月12日

摘要: Hessian:主要响应角点和很强的纹理区域Harris:非常准确的角点检测 阅读全文
posted @ 2011-06-12 09:45 飞夺泸定桥 阅读(3994) 评论(1) 推荐(1) 编辑

摘要: rotation invariance,not scale invariance怎么用描述符表达一个特征点? 阅读全文
posted @ 2011-06-12 09:36 飞夺泸定桥 阅读(3150) 评论(4) 推荐(0) 编辑

2011年6月10日

摘要: CamShift算法研究(基于opencv)2008-06-27 12:31CamShift算法: CamShift算法,即"Continuously Apative Mean-Shift"算法,是一种运动跟踪算法。它主要通过视频图像中运动物体的颜色信息来达到跟踪的目的。 我把这个算法分解成三个部分,便于理解: 1) Back Projection(背景放映)计算 2) Mean Shift(平均转换)算法 3) CamShift算法(注意:上面的翻译纯属个人理解!)1)Back Projection:计算Back Projection的步骤是这样的:1. 计算被跟踪目标的 阅读全文
posted @ 2011-06-10 01:43 飞夺泸定桥 阅读(7737) 评论(0) 推荐(1) 编辑

摘要: meanshift算法思想其实很简单:利用概率密度的梯度爬升来寻找局部最优。它要做的就是输入一个在图像的范围,然后一直迭代(朝着重心迭代)直到满足你的要求为止。但是他是怎么用于做图像跟踪的呢?这是我自从学习meanshift以来,一直的困惑。而且网上也没有合理的解释。经过这几天的思考,和对反向投影的理解使得我对它的原理有了大致的认识。 在opencv中,进行meanshift其实很简单,输入一张图像(imgProb),再输入一个开始迭代的方框(windowIn)和一个迭代条件(criteria),输出的是迭代完成的位置(comp )。 这是函数原型: int cvMeanShift( cons 阅读全文
posted @ 2011-06-10 01:37 飞夺泸定桥 阅读(16317) 评论(0) 推荐(2) 编辑

摘要: Mean shift主要用在图像平滑和图像分割(那个跟踪我现在还不清楚),先介绍一下平滑的原理:输入是一个5维的空间,2维的(x,y)地理坐标,3维的(L,u,v)的颜色空间坐标,当然你原理也可以改写成rgb色彩空间或者是纹理特征空间。先介绍一下核函数,有uniform的,也有高斯的核函数,不管是哪个的,其基本思想如下:简单的平滑算法用一个模板平均一下,对所有的像素,利用周围的像素平均一下就完事了,这个mean shift的是基于概率密度分布来的,而且是一种无参的取样。有参的取样就是假设所有的样本服从一个有参数的概率分布函数,比如说泊松分布,正态分布等等,高中生都知道概率公式里面是有参数的,在 阅读全文
posted @ 2011-06-10 01:31 飞夺泸定桥 阅读(7555) 评论(2) 推荐(1) 编辑

2011年6月9日

摘要: Ransac是用途很广泛的算法,详细介绍请看http://en.wikipedia.org/wiki/RANSAC。下面简单介绍一下(没兴趣的可以略过不看)。我们分析世界,需要对世界建模,把世界中的现象抽象成模型。每个模型,又存在一些参数,通过调节参数,可以得到不同的实例,进行推演。我们观察现象,得到一堆数据。如何为这堆数据找一个合适的模型,再确定合适的模型参数,这是很重要的问题,是人类理性的基础。数据分两种:有效数据(inliers)和无效数据(outliers)。那些偏差不大的数据是有效数据,偏差大的数据是无效数据。如果有效数据占大多数,无效数据只是很少量时,我们可以通过最小二乘法或类似的 阅读全文
posted @ 2011-06-09 21:52 飞夺泸定桥 阅读(22539) 评论(0) 推荐(7) 编辑

摘要: 图像傅立叶变换图像的傅立叶变换,原始图像由N行N列构成,N必须是基2的,把这个N*N个包含图像的点称为实部,另外还需要N*N个点称为虚部,因为FFT是基于复数的,如下图所示:计算图像傅立叶变换的过程很简单:首先对每一行做一维FFT,然后对每一列做一维FFT。具体来说,先对第0行的N个点做FFT(实部有值,虚部为0),将FFT输出的实部放回原来第0行的实部,FFT输出的虚部放回第0行的虚部,这样计算完全部行之后,图像的实部和虚部包含的是中间数据,然后用相同的办法进行列方向上的FFT变换,这样N*N的图像经过FFT得到一个N*N的频谱。下面展示了一副图像的二维FFT变换:频域中可以包含负值,图像中 阅读全文
posted @ 2011-06-09 20:52 飞夺泸定桥 阅读(2960) 评论(1) 推荐(1) 编辑

摘要: 傅里叶变换是将时域信号分解为不同 频率的正弦和/余弦和的形式。傅里叶变换是数字图像处理技术的基础,其通过在时空域和频率域来回切换图像,对图像的 信息特征进行提取和分析。一维傅里叶变换及其反变换单变量连续函数,f(x)的傅里叶变换F(u)定义为等式:u=0,1,2,…,M一1 同样,给出F(u), 能用反DFT来获得原函数: 其中,u=0,1,2,…,M一1。因此,我们看到傅里叶变换的每项[即对于每个u值,F(u)的值]由f(x)函数所有值的和组成。f(x)的值则与各种频率的正弦值和余弦值相乘。F(u)值的范围覆盖的域(u的值)称为频率域,因为u决定了变换的频率成分(x也作用于频率,但它们相加, 阅读全文
posted @ 2011-06-09 20:28 飞夺泸定桥 阅读(14087) 评论(1) 推荐(4) 编辑

摘要: 先说下什么是线性插值:简单比方,原来的数值序列:0,10,20,30,40 线性插值一次为:0,5,10,15,20,25,30,35,40 即认为其变化(增减)是线形的,可以在坐标图上画出一条直线 在数码相机技术中,这些数值可以代表组成一张照片的不同像素点的色彩、色度等指标。 为了方便理解,先考虑一维情况下的线性插值 对于一个数列c,我们假设c[a]到c[a+1]之间是线性变化的 那么对于浮点数x(a<=x<a+1),c(x)=c[a]+(x-a)*(c[a+1]-c[a])=c[a+1]*(x-a)+c[a]*(1+a-x); 把这种插值方式扩展到二维情况 对于一个二维数组c, 阅读全文
posted @ 2011-06-09 01:55 飞夺泸定桥 阅读(487) 评论(0) 推荐(0) 编辑

摘要: 1:彩色图像转灰度,加权平均法W=0.229×R+0 587xG+0114xB(1)缩小图像为源图像的1/42: 中值滤波: 是否需要 ,看效果吧3:二值化 : 大律法阈值4:边缘提取:可以使用简单的一阶差分运算,在水平方向和垂直方向,或者带有滤波效果的soble算子5:车牌粗提取:在水平方向上边缘统计发获得车牌大概位置的2个,在边缘统计图里面,从下向上进行判断,获得2个峰值,然后寻找 在获得的水平区域,利用垂直边缘统计获得车牌的具体位置 问题是:是否有其他区域的干扰?6:精确定位:(1)车牌的高宽比例,这个只有在正面的时候才成立,并不是非常确定的条件 (2)对粗定位中提取的区域进行 阅读全文
posted @ 2011-06-09 01:51 飞夺泸定桥 阅读(596) 评论(0) 推荐(0) 编辑

摘要: 核跟踪 核跟踪的目标表达通常用原始的目标区域来表达,跟踪由计算目标运动来实现的。目标运动以参数形式的运动(如平移、仿射等)或计算得到的连续帧的密度流区域描述。这些算法在外观表达的运动、跟踪的目标数目、运动估计使用的方法等方面有所差异。核跟踪算法可分为两类:分别是基于模板和概率密度的外观模型的跟踪,和基于多视角外观模型跟踪。1 基于模板和概率密度外观模型的跟踪 这类方法计算简单,方法直观。根据目标是独立跟踪还是联合跟踪又可分为两个子类。1.1 单目标跟踪这类算法中最常用的是模板匹配,也是最直观的方法。在图像中搜索类似于预定义模板的区域,通过相似性度量(比如cross correlation)判断 阅读全文
posted @ 2011-06-09 01:44 飞夺泸定桥 阅读(1468) 评论(0) 推荐(0) 编辑

摘要: 现阶段的目标跟踪算法能够在简单的场景中进行鲁棒的实时跟踪。但是通常需要一些约束条件,如运动的平滑性,遮挡的数目,光照不变条件,目标与背景之间的对比度等。实际的应用场景很难符合这些条件。所以,特征选择、目标表达、运动形状、运动估计等相关问题还是较为热门的研究领域。在不受限制的日常视频中跟踪目标也是个重大挑战。噪声、压缩、非结构化场景都是带来困难的因素。利用特定的环境信息也是一个重要的研究方向。比如车辆跟踪中汽车应该限制在路面上而不是天上或墙上。这方面的信息对识别非常有意义。特征集合的选择对跟踪效果的影响也很大,通常选择区分性较好的特征。 现在流行使用多种特征的加权组合。机器学习和模式识别对特征选 阅读全文
posted @ 2011-06-09 01:42 飞夺泸定桥 阅读(759) 评论(0) 推荐(0) 编辑

摘要: 1 遮挡问题 细了说,遮挡分为三种情况:自遮挡,目标间遮挡, 背景遮挡。通常对于目标间的遮挡,多目标跟踪算法(如MacCormick and Blake [2000] and Elgammal et al. [2002])可以根据目标的位置和外观的先验知识解决这一问题。而场景结构的部分遮挡则难以判断,因为难以辨认究竟是目标性状变化还是发生遮挡。处理遮挡的通用方法是用线性或非线性动态模型建模目标运动,并在发生遮挡的时候继续预测目标位置,直到目标重新出现再修正它。 Beymer and Konolige [1999]用了线性速度模型,并运用了卡尔曼滤波器来估计目标的位置和运动 Isard and 阅读全文
posted @ 2011-06-09 01:40 飞夺泸定桥 阅读(663) 评论(0) 推荐(1) 编辑

摘要: 目标检测:或者在每帧中都进行检测,或者在目标出现时检测。有利用当前帧信息检测的,也有利用连续帧的相关信息检测的。后者最常用的方法是帧间差分。常用的目标检测方法有四类:Point Detector: Moravec's 算子, Harris算子, SIFT算子, Affine Invariant Point DetectorSegmentation: MeanShift, Graph-Cut, Active ContourBackground Modeling: 混合高斯模型, Eigenbackground, Wall flower, 动态纹理背景Supervised Classifi 阅读全文
posted @ 2011-06-09 01:37 飞夺泸定桥 阅读(1359) 评论(0) 推荐(0) 编辑

摘要: 图像特征最重要的属性是独特性,能够咋特征空间内方便区分目标。可用于跟踪的特征有颜色、边缘、光流和纹理,或者是其中几种的组合。颜色-最常用的颜色空间是RGB,但它不是均匀分布的;均匀分布的颜色空间是HSV。根据应用选择合适的颜色空间。边缘-边缘通常伴随着剧烈的intensity变化。对比于颜色特征,边缘特征对光照变化不敏感。最流行的边缘检测算法是Canny算子。光流-光流特征是定义区域内每个像素变化的稠密位移向量域。通过计算区域内的光照对比度变化得到。通常应用在基于运动的分割和跟踪上。纹理-纹理是检测物体表面intensity变化的手段,是对光滑程度和规则程度的量化。相对于颜色,它多了一个计算描 阅读全文
posted @ 2011-06-09 01:32 飞夺泸定桥 阅读(785) 评论(0) 推荐(0) 编辑

摘要: 轮廓跟踪形状复杂的目标难以用简单的几何形状来表示。基于轮廓的方法提供了较为准确的形状描述。这类方法的主要思想是用先前帧建立的目标模型找到当前帧的目标区域。其中目标模型可以是颜色直方图、目标边缘或者轮廓。基于轮廓的跟踪方法可以分为两类:形状匹配方法和轮廓跟踪方法。前者在当前帧中搜索目标性状,后者则通过状态空间模型或直接的能量最小化函数推演初始轮廓在当前帧中的新位置。1 形状匹配方法 这种方法类似于基于模板的跟踪,在当前帧中搜索目标的轮廓和相关模型。Huttenlocher et al.[1993] - 用基于边缘的表达方式进行形状匹配,用Hausdorff距离进行匹配测量。Li et al. [ 阅读全文
posted @ 2011-06-09 01:31 飞夺泸定桥 阅读(2608) 评论(0) 推荐(0) 编辑

摘要: 这7个不变矩构成一组特征量,Hu.M.K在1962年证明了他们具有旋转,缩放和平移不变性。 实际上,在对图片中物体的识别过程中,只有M1 和M2 不变性保持的比较好,其他的几个不变矩带来的误差比较大,有学者认为只有基于二阶矩的不变矩对二维物体的描述才是真正的具有旋转、缩放和平移不变性(M1 和M2 刚好都是由二阶矩组成的)。不过我没有证明是否是真的事这样的。 由Hu矩组成的特征量对图片进行识别,优点就是速度很快,缺点是识别率比较低,我做过手势识别,对于已经分割好的手势轮廓图,识别率也就30%左右,对于纹理比较丰富的图片,识别率更是不堪入眼,只有10%左右。这一部分原因是由于Hu不变矩只用到低阶 阅读全文
posted @ 2011-06-09 00:30 飞夺泸定桥 阅读(9877) 评论(0) 推荐(0) 编辑

2011年6月7日

摘要: 模板匹配的工作方式 模板匹配的工作方式跟直方图的反向投影基本一样,大致过程是这样的:通过在输入图像上滑动图像块对实际的图像块和输入图像进行匹配。 假设我们有一张100x100的输入图像,有一张10x10的模板图像,查找的过程是这样的: (1)从输入图像的左上角(0,0)开始,切割一块(0,0)至(10,10)的临时图像; (2)用临时图像和模板图像进行对比,对比结果记为c; (3)对比结果c,就是结果图像(0,0)处的像素值; (4)切割输入图像从(0,1)至(10,11)的临时图像,对比,并记录到结果图像; (5)重复(1)~(4)步直到输入图像的右下角。 大家可以看到,直方图反向投影对比的 阅读全文
posted @ 2011-06-07 11:56 飞夺泸定桥 阅读(1023) 评论(0) 推荐(0) 编辑

摘要: 1.反向投影的作用是什么? 反向投影用于在输入图像(通常较大)中查找特定图像(通常较小或者仅1个像素,以下将其称为模板图像)最匹配的点或者区域,也就是定位模板图像出现在输入图像的位置。2.反向投影如何查找(工作)? 查找的方式就是不断的在输入图像中切割跟模板图像大小一致的图像块,并用直方图对比的方式与模板图像进行比较。假设我们有一张100x100的输入图像,有一张10x10的模板图像,查找的过程是这样的:(1)从输入图像的左上角(0,0)开始,切割一块(0,0)至(10,10)的临时图像;(2)生成临时图像的直方图;(3)用临时图像的直方图和模板图像的直方图对比,对比结果记为c;(4)直方图对 阅读全文
posted @ 2011-06-07 11:46 飞夺泸定桥 阅读(1180) 评论(1) 推荐(0) 编辑

2011年6月5日

摘要: 直方图均衡化是灰度变换的一个重要应用,它高效且易于实现,广泛应用于图像增强处理中。图像的像素灰度变化是随机的,直方图的图形高低不齐,直方图均衡化就是用一定的算法使直方图大致平和。均衡化处理后的图象只能是近似均匀分布。均衡化图象的动态范围扩大了,但其本质是扩大了量化间隔,而量化级别反而减少了,因此,原来灰度不同的象素经处理后可能变的相同,形成了一片的相同灰度的区域,各区域之间有明显的边界,从而出现了伪轮廓。如果原始图像对比度本来就很高,如果再均衡化则灰度调和,对比度降低。在泛白缓和的图像中,均衡化会合并一些象素灰度,从而增大对比度。均衡化后的图片如果再对其均衡化,则图像不会有任何变化。灰度直方图 阅读全文
posted @ 2011-06-05 23:07 飞夺泸定桥 阅读(21486) 评论(0) 推荐(2) 编辑

摘要: Hough变换用来在图象中查找直线。它的原理很简单:假设有一条与原点距离为s,方向角为θ的一条直线,直线上的每一点都满足方程7.1:s = xcosθ + ysinθ 可以利用这个变换找出图中最长的直线,实现算法如下:1.创建一个二维数组hDistAlpha,其中第一维表示距离s(计算可能出现的最大距离为,用来确定数组第二维的大小),第二维表示方向角θ(书上正好和我说的相反,但看了程序以后我更坚持自己的想法)。2.创建一个二维数组Line,计算每条直线的上下两个端点。3.对图像中的每个黑点,角度的变化范围从00到1780(角度每次增加20 ),按方程(7.1)求出对应的距离s来,相应的数组元素 阅读全文
posted @ 2011-06-05 21:57 飞夺泸定桥 阅读(9449) 评论(1) 推荐(1) 编辑

摘要: 1.Canny边缘检测基本原理 (1)图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置。 (2)根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是Canny边缘检测算子。 (3)类似与Marr(LoG)边缘检测方法,也属于先平滑后求导数的方法。 2.Canny边缘检测算法: step1:用高斯滤波器平滑图象; step2:用一阶偏导的有限差分来计算梯度的幅值和方向; step3:对梯度幅值进行非极大值抑制; step4:用双阈值算法检测和连接边缘。step1:高斯平滑函数 step3:非极大值抑制 仅仅得到全局的梯度并不足以确定边缘,因此为确定边缘,必须保 阅读全文
posted @ 2011-06-05 15:33 飞夺泸定桥 阅读(35174) 评论(3) 推荐(4) 编辑

摘要: 1.基本理论 拉普拉斯算子是最简单的各向同性微分算子,具有旋转不变性。一个二维图像函数 的拉普拉斯变换是各向同性的二阶导数,定义为: 为了更适合于数字图像处理,将该方程表示为离散形式: 另外,拉普拉斯算子还可以表示成模板的形式,如图5-9所示。图5-9(a)表示离散拉普拉斯算子的模板,图5-9(b)表示其扩展模板,图5-9(c)则分别表示其他两种拉普拉斯的实现模板。从模板形式容易看出,如果在图像中一个较暗的区域中出现了一个亮点,那么用拉普拉斯运算就会使这个亮点变得更亮。因为图像中的边缘就是那些灰度发生跳变的区域,所以拉普拉斯锐化模板在边缘检测中很有用。一般增强技术对于陡峭的边缘和缓慢变化的边缘 阅读全文
posted @ 2011-06-05 14:48 飞夺泸定桥 阅读(14075) 评论(1) 推荐(0) 编辑

摘要: 首先,我们来开一下计算机是如何检测边缘的。以灰度图像为例,它的理论基础是这样的,如果出现一个边缘,那么图像的灰度就会有一定的变化,为了方便假设由黑渐变为白代表一个边界,那么对其灰度分析,在边缘的灰度函数就是一个一次函数y=kx,对其求一阶导数就是其斜率k,就是说边缘的一阶导数是一个常数,而由于非边缘的一阶导数为零,这样通过求一阶导数就能初步判断图像的边缘了。通常是X方向和Y方向的导数,也就是梯度。理论上计算机就是通过这种方式来获得图像的边缘。 但是,具体应用到图像中你会发现这个导数是求不了的,因为没一个准确的函数让你去求导,而且计算机在求解析解要比求数值解麻烦得多,所以就想到了一种替代的方式来 阅读全文
posted @ 2011-06-05 14:26 飞夺泸定桥 阅读(1847) 评论(0) 推荐(0) 编辑

摘要: 1. 腐蚀是一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的物体。腐蚀的算法:用3x3的结构元素,扫描图像的每一个像素用结构元素与其覆盖的二值图像做“与”操作如果都为1,结果图像的该像素为1。否则为0。结果:使二值图像减小一圈2. 膨胀是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。可以用来填补物体中的空洞。膨胀的算法:用3x3的结构元素,扫描图像的每一个像素用结构元素与其覆盖的二值图像做“与”操作如果都为0,结果图像的该像素为0。否则为1结果:使二值图像扩大一圈3. 先腐蚀后膨胀的过程称为开运算。用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并 阅读全文
posted @ 2011-06-05 03:03 飞夺泸定桥 阅读(12961) 评论(0) 推荐(1) 编辑

摘要: 高斯模糊即对指定像素和其周围像素进行加权平均来得到最终结果,使用高斯分布作为滤波器。高斯分布即为正太分布,1维和2维正态分布密度函数如下这里设μ=0, ρ=0.u为期望,σ为标准差,μ±σ为函数图像的拐点,σ越大曲线越矮越宽,即采样范围越大。在这两个函数中,x,y表示相对于中心像素(0,0)的偏移量(以像素为单位)这两个函数的结果表示在x或(x,y)处的像素的权重,或者说在模糊后周围像素分别将产生多少的贡献来影响目标像素.一维高斯函数当标准差为1时的一些值:G(0) = 0.3989422804G(1) = G(-1) = 0.2419707245G(2) = G(-2) = 0.0 阅读全文
posted @ 2011-06-05 00:42 飞夺泸定桥 阅读(1399) 评论(1) 推荐(0) 编辑

2011年5月30日

摘要: 使用stringstream类:(强烈推荐) #include <iostream> #include <sstream> using namespace std; int main() { int i = 10; stringstream strstr; strstr << i; string str(strstr.str()); cout << "str = " << str << std::endl; } 阅读全文
posted @ 2011-05-30 21:11 飞夺泸定桥 阅读(566) 评论(0) 推荐(0) 编辑

2011年4月11日

摘要: 英国数学家J.H.Conway在1970年提出一种被称作“生命游戏”的小游戏。Life游戏实际上是一种模拟,并不是游戏者之间的游戏。它在一个无边界的矩形网格上进行,这个矩形网格中的每个单元可被一个有机体占据,或者不被占据。被占据的单元称为活的,未被占据的单元称位死的。哪个单元是活的要根据其周围活的邻居单元数目而一代代地发生变化。游戏规则如下:1.给定单元的邻居是与它在垂直,水平或对角上相界的8个单元。2.如果1个单元为活的,但没有邻居单元是活的,或者仅有一个邻居单元是活的,则在下一代,此单元会因为孤独而死亡。 3.如果1个单元周围有2个或者3个邻居单元为生,则该单元在下一代也是活的。4.如果. 阅读全文
posted @ 2011-04-11 21:30 飞夺泸定桥 阅读(3721) 评论(0) 推荐(0) 编辑

2011年3月28日

摘要: 参考文章http://apps.hi.baidu.com/share/detail/17988390,matlab中如何添加svm工具包,搭建了环境 阅读全文
posted @ 2011-03-28 11:08 飞夺泸定桥 阅读(864) 评论(0) 推荐(0) 编辑

2011年3月26日

摘要: [摘抄]matlab一小结关键词: matlab Matlab程序文件,扩展名为'.m'。如果程序文件由文字处理器及文本编辑器创建,则在matlab命令窗口中输入不带扩展名的文件名即可执行。 type *.m 显示*.m内容。 format :format compact 剔除了显示中多余的空行或空格。format longe将系统默认的5位数字的显示格式转换为16位数字加3位指数的显示格式。format shot系统默认设置。 format rat分数显示 基本语法:在表达式后面加;可省略系统响应信息。一行可输入多个表达式,中间以逗号或分号分隔。exp(x)-ex pow2( 阅读全文
posted @ 2011-03-26 21:49 飞夺泸定桥 阅读(1425) 评论(0) 推荐(0) 编辑

摘要: 关于Sort的用法: B=sort(A,dim) %沿着矩阵A中指定维数dim方向重新排列A中的元素。 [B,IX]=sort(A); %其中IX是一个大小等于size(A)的数组,其每一列是A中列向量的元素相对应的置换位置记号。matlab中结构变量的定义: 在matlab定义基于结构的变量,直接对变量声明为model=struct;即可运用。matlab时间间隔的获取: t = cputime; surf(peaks(40)); e = cputime-t e = 0.4667matlab中获取文件的大小: %only for one file D = dir('C:\MATLAB 阅读全文
posted @ 2011-03-26 21:43 飞夺泸定桥 阅读(867) 评论(0) 推荐(1) 编辑

摘要: function target=KNN(in,out,test,k)% in: training samples data,n*d matrix% out: training samples' class label,n*1% test: testing data% target: class label given by knn% k: the number of neighborsClassLabel=unique(out);c=length(ClassLabel);n=size(in,1);% target=zeros(size(test,1),1);dist=zeros(siz 阅读全文
posted @ 2011-03-26 21:38 飞夺泸定桥 阅读(13016) 评论(4) 推荐(0) 编辑