The River is Just a River  
If you're absent from my struggle,then,don't be present for my success

2012年9月2日

摘要: 前一阶段做项目用到了 何凯明的这篇文章中的算法,闲来无事,总结一下。其实,对于图像去雾,去模糊,去噪声问题,数学模型都非常接近,而且非常简单,由于数学模型非常简单,如何有效的估计其中的参数就是重点了。以前有大量的文章是基于先验假设的,这类方法有很大的局限性,而何凯明的这篇文章的确是给出了一个去雾问题的比较好的模型。-------------------------------先介绍一下何凯明这个人: 当年的广东省高考状元,然后进入清华,应该是基础班,搞数学物理这些基础的东西,这些基础的东西肯定对他的科学研究有很大的作用,这篇文章就足以说明问题。清华毕业,应该是去了香港中文大学,然后在微软亚洲研 阅读全文
posted @ 2012-09-02 16:00 TiffanyZhou 阅读(9304) 评论(2) 推荐(2) 编辑

2012年9月1日

摘要: 在图像中,边缘可以看做是位于一阶导数较大的像素处,因此,我们可以求图像的一阶导数来确定图像的边缘,像sobel算子等一系列算子都是基于这个思想的。但是这存在几个问题:1. 噪声的影响,在噪声点处一阶导数也会取极大值 2. 求解极大值的复杂性所以,有了使用二阶导数的方法。这里主要考虑LoG算子,即高斯-拉普拉斯算子。为什么要使用二阶导数呢?这里要考虑上面说的第二个问题,一阶导数的极大值到了二阶导数对应的值就是0了,很显然求解一个函数的零点值要比求极大值容易。这个性质也被称为二阶导数过零点(zero-crossing)。所以,我们就可以利用二阶导数来代替一阶导数了。而对于上面的第一个问题,也就是为 阅读全文
posted @ 2012-09-01 21:02 TiffanyZhou 阅读(17132) 评论(0) 推荐(4) 编辑

2012年8月23日

摘要: 在创建一个windows应用程序时,在创建窗口的部分一般会有如下的函数调用:CreateWindow(...) ;ShowWindow(...) ;UpdateWindow(...) ;第一句:创建窗口第二句:显示窗口(显示创建之后的窗口)第三句:对窗口进行绘画现在来探讨一下UpdateWindow函数,下面是MSDN上的解释:UpdateWindow sends a WM_PAINT message directly to the window procedure of the specified window, bypassing the application queue. 下面我们创建 阅读全文
posted @ 2012-08-23 13:54 TiffanyZhou 阅读(1493) 评论(3) 推荐(1) 编辑

2012年8月22日

摘要: 最近在项目中发现对windows API还是不熟悉,用到的时候只能现查,在遇到某些问题的时候由于理解不透彻还是遇到很多问题,所以,决定仔细研究一下Windows程序设计的API。使用VS2010创建Windows应用程序,会生成如下4个函数:int APIENTRY _tWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow)ATOM MyRegisterClass(HINSTANCE hInstance)BOOL InitInstance(HINSTANCE hIns... 阅读全文
posted @ 2012-08-22 14:06 TiffanyZhou 阅读(506) 评论(0) 推荐(0) 编辑

2012年7月29日

摘要: 接触到积分图像,对于cvIntegral函数得到的结果有点疑惑,为什么W*H的图像的积分图像是(W+1)*(H+1)呢?做了个简单的实验如下:我设置了一个2*2的CvMat: 然后,调用cvIntegral计算积分图像,得到的结果如下: 从结果中发现,第一行与第一列都是0, 真正对我们有缘的数据是从第一行和第一列开始的,这也是我们理解的积分图像应该得到的结果。回头看一下cvIntegral的文档介绍,就会发现为什么积分图的宽与高会增加1,且第一行与第一列都是0.而对于opencv来说,X,Y都是从0开始的,显然,当X==0||Y==0时,{(x,y)|x<X,y<Y}是空集, 我没 阅读全文
posted @ 2012-07-29 14:42 TiffanyZhou 阅读(3143) 评论(0) 推荐(0) 编辑

2012年7月16日

摘要: 花了一个半小时读完《敏捷开发修炼之道》,感觉还不错,记录一下自己的理解,收获。敏捷,其实可以简单的理解为快,那么怎样才能快,就是集中团队的智慧来理解问题,解决问题,这样不仅进度会快,而且会使软件开发这个复杂的工作变得简单。由此可见,“团队”是敏捷的重中之重,没有了团队,敏捷也就无从谈起。所以,可以简单的给敏捷下一个定义:“敏捷就是借助团队的力量,来使软件开发过程变得轻便快捷,并且使团队中的个人对于问题的理解更加深入,而敏捷的结果除了解决问题之外,对于团队的气氛也有很大的帮助”书中作者讲述了敏捷开发需要的45个习惯,合上书,我想我能说出来的就是我理解消化的,至于那些未消化的,或许还是自己能力未到 阅读全文
posted @ 2012-07-16 20:38 TiffanyZhou 阅读(1168) 评论(1) 推荐(1) 编辑

2012年5月20日

摘要: 在图像处理中,经常会遇到高斯光滑的操作,大部分人也都知道将图像与高斯函数卷积就实现了高斯光滑的操作,但是为什么?卷积公式如下: 从公式中可以看出,卷积是两个函数的乘积的积分,其中\tau的范围即是函数f的定义域。这里假定函数f即是我们的图像函数。由积分的意义我们可以知道,如果只对f(x)进行积分,那么首先对f(x)进行无限分割,然后求和,即: 现在,对于卷积的计算,我们也是先对f(x)进行分割,然后对于分割后的每一个点都乘以一个值,即:(这里对于每一次计算,t作为一个常量看待) 从上面的积分角度的理解可以看出,我们相当于对f(x)进行了一个加权求和。现在我们看看当函数g为高斯函数(考虑均值u= 阅读全文
posted @ 2012-05-20 16:52 TiffanyZhou 阅读(3774) 评论(11) 推荐(3) 编辑

2012年5月8日

摘要: 前一篇文章简要的说了一下空域上的Harris角点检测,现在说一下我真正要说的时空域上的3D Harris角点检测。其实理解了空域的角点检测,时空域上的也就是多了一个时间的维度罢了,思想是一样的。首先我们还是进行尺度变换,将视频变化为尺度空间表示:,其中\sigma_1是空域的尺度,\tau_1是时间域的尺度,G是高斯核函数所以,根据空域中的方法,我们定义按照泰勒公式展开,可以得到矩阵M:也可以得到Harris角点算子在时空域的表达形式,即:同样,我们来验证上式R的局部最大值与3个特征值都很大的对应关系。设,且则上式变为这里我们要求R>=0,所以设alpha=1,beta=1,那么k=1/ 阅读全文
posted @ 2012-05-08 12:55 TiffanyZhou 阅读(5112) 评论(7) 推荐(4) 编辑

2012年5月7日

摘要: 今天看3D(时空域) Harris角点的检测,发现网上关于此的中文内容很少,所以决定写两篇文章,分享一下自己的心得。第一篇是关于在空域上的Harris角点检测。在我们解决问题时,往往希望找到特征点,“特征”顾名思义,指能描述物体本质的东西,还有一种解释就是这个特征微小的变化都会对物体的某一属性产生重大的影响。而角点就是这样的特征。观察日常生活中的“角落”就会发现,“角落”可以视为所有平面的交汇处,或者说是所有表面的发起处。假设我们要改变一个墙角的位置,那么由它而出发的平面势必都要有很大的变化。所以,这就引出了图像角点的定义“如果某一点在任意方向的一个微小变动都会引起灰度很大的变化,那么我们就把 阅读全文
posted @ 2012-05-07 14:30 TiffanyZhou 阅读(11870) 评论(8) 推荐(4) 编辑

2012年4月21日

摘要: 闲来无事,总结一下这个周的学习情况。1. 基本实现使用纹理方法实现人群密度估计的C++代码,分了3类进行模拟,每一类15个训练图像,总共61个测试样本,低密度的分错4个,中密度分错0个,高密度分错0个,正确分类了93%. 代码实现的几个关键点:1).求灰度共生矩阵时像素距离的选取对分类率有很大的影响。我使用的方法是借鉴了LDA(线性判别分析)的方法,即选取一个d,使类内距离最 少, 类间距离最大。2)灰度共生矩阵的角度通常选取0,40,90,135。但是有时没有必要都计算,通常可以实验来决定哪个方向有较大的决定作用。这个我没有进行实验,不过我刚刚有个想法,可不可以利用具有方向性的边缘检测来粗略 阅读全文
posted @ 2012-04-21 13:32 TiffanyZhou 阅读(1052) 评论(4) 推荐(0) 编辑