频率域图像增强

news/2024/7/6 1:08:40 标签: fft, 图像处理, processing, 算法, image, 文档

http://download1.csdn.net/down3/20070617/17204050839.rar

本人同意他人对我的文章引用,但请在引用时注明出处,谢谢.作者:蒋志强

相应的PDF文档及可执行程序可以在http://download.csdn.net/source/190027下载

1频率图像增强的简介

11背景介绍:

在数字图像处理中,图像最直观的理解是把图像理解为二维函数F(x,y),其中xy作为数字图像中象素的二维空间的坐标,F的值作为数字图像象素该位置的灰度值。但是在空间域在处理某些数字图像的问题时,会比较困难甚至是几乎难以处理。在频率下处理的时候,同样的问题用不同的描述方式是和空间域的表示是等价的,但由于描述方式不同了以前空间上很难处理的问题在频率域上就有可能变得很容易了。在频率域上处理时,还可以使用数字信号处理的一系列成熟的方法,让我们处理特殊的问题有了很多的工具,所以频率图像增强是很有价值进行学习和研究的。

12频率图像增强的基本步骤:

无论是何种类型,何种目的的频率域图像增强,处理的过程都是基本一致的,并如下图1-1所示:

images/p_blog_csdn_net/gamer_gerald/279381/o_%e5%9b%be1-1.JPG" />

1-1

13关于傅立叶变换:

在图1-1,在具体进行频率域的各种处理滤波的前后,进行了傅立叶变换以及傅立叶反变换.这两个变换的过程就是将空间的信息分解为在频率上的表示,或者将频率上的表示转化为空间上的表示,两种变换是互为逆变换的.正是通过傅立叶正反变换的处理,才使得频率域上的处理可以用于图像的增强。

2.关于傅立叶变换的理解:

21关于傅立叶级数:

在自然科学和工程技术,时常会遇到各种周期现象,在数学上都可以用周期函数来描述。正弦函数或余弦函数是周期函数中最简单的,我们对正弦/余弦函数比较容易处理,如果可以将复杂的周期函数表示成简单的正弦/余弦周期函数的形式,将会对我们处理问题带来很大的方便。数学家傅立叶在这方面的贡献就是提出了将复杂的周期函数表示为简单的正弦/余弦周期函数,并提出了进行这种转变的前提条件----狄里赫利条件。

傅立叶级数:images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e5%82%85%e7%ab%8b%e5%8f%b6%e7%ba%a7%e6%95%b0.JPG" />

在这个公式中images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e5%85%ac%e5%bc%8f%e4%b8%ad.JPG" />

其中的函数f(t)是一般的周期函数,这样我们就可以实现了转换为了简单正弦/余弦周期函数的形式了。上面的傅立叶级数表示了一个周期函数,如何表示成无穷多个正余弦函数叠加的形式的方法。

22傅立叶级数与傅立叶变换的联系:

在任何一本数字图像的书都可以找到下面的一纬傅立叶变换的公式的表示:

images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e5%85%ac%e5%bc%8f%e7%9a%84%e8%a1%a8%e7%a4%ba.JPG" />

其中f(x)是一个普通的非周期函数,j = ,大写的F表示傅立叶变换,我们对比这个式子与傅立叶级数公式,会发现有很大的差别,但实际上他们的思想是相同的。现在我们试图从傅立叶级数推到傅立叶变换的公式,以证明他们的联系,并通过推导过程比较深入的理解傅立叶公式在图像处理中的物理意义,做到知其然,也知其所以然。

数学中有个叫做欧拉公式的数学表达:images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e6%95%b0%e5%ad%a6%e8%a1%a8%e8%be%be.JPG" /> ;

其中的j = images/p_blog_csdn_net/gamer_gerald/279381/t_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e5%85%b6%e4%b8%ad.JPG" />;

反解欧拉公式可以得到:

images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e5%be%97%e5%88%b01.JPG" />   images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e5%be%97%e5%88%b02.JPG" />

                

通过反解欧拉公式得到的COSXSINX复数形式的指数表示,将其代入傅立叶级数公式中可以得到下面的傅立叶级数公式的指数表示形式images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e6%8c%87%e6%95%b0%e8%a1%a8%e7%a4%ba%e5%bd%a2%e5%bc%8f.JPG" />

其中f(x)表示一个一般的周期函数,并且周期为Tj =images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e5%85%b6%e4%b8%ad.JPG" /> 

其中 images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e5%85%b6%e4%b8%ad1.JPG" />,这个式子中的积分从images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e4%bb%8e.JPG" />  images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e5%88%b0.JPG" />,因为积分的区域是f(x)的一个周期T,所以images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e4%bb%8e.JPG" /> 可以周期中的任意值,对结果没有任何影响。

傅立叶级数公式的指数形式和三角函数形式是等价的,我们注意到指数形式中的images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20Fn.JPG" /> 项与傅立叶变换公式在形式上非常相象。因为images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e4%bb%8e.JPG" /> 是可以取任意值的,不妨取为 images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20-2%e5%88%86%e4%b9%8bT.JPG" />,于是就有images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e5%b0%b1%e6%9c%89.JPG" />  。这样的做的前提f(x)是周期为T的周期函数,但是在现实中的函数往往不是直接的周期函数,但非周期函数可以理解为周期 images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20T%e6%97%a0%e7%a9%b7%e5%a4%a7.JPG" />的特殊推广。在上式子中我们令 images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20T%e6%97%a0%e7%a9%b7%e5%a4%a7.JPG" />,于是便有等式 images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e7%ad%89%e5%bc%8f.JPG" />。这样表示的前提是f(x)不是一个周期函数(或者说是特殊周期为images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20T%e6%97%a0%e7%a9%b7%e5%a4%a7.JPG" /> 的周期函数),images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20T%e6%97%a0%e7%a9%b7%e5%a4%a7.JPG" /> 。我们发现 images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20TFn.JPG" />的形式很接近傅立叶变换公式了。

现在我们再令images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e5%86%8d%e4%bb%a4.JPG" /> ,并将其带入images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20TFn.JPG" /> 的表示中,便有:

images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e4%be%bf%e6%9c%89.JPG" />     ,很惊喜吧,这样就和傅立叶变换公式的形式一模一样了。是表示上的巧合还是真正的在数学上具有意义的呢?下面我们马上来理解这样进行的数学变换是否是有意义的。

23对傅立叶变换的理解:

在傅立叶变换中的u表示的频率,在上面的数学变换中images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%201%e5%88%86%e4%b9%8bT.JPG" />images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e5%86%8d%e4%bb%a4.JPG" />,将 ,这样代换后的u是否也表示频率呢?

因为T是周期,所以 images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%201%e5%88%86%e4%b9%8bT.JPG" />就是频率。images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20T%e6%97%a0%e7%a9%b7%e5%a4%a7.JPG" /> ,所以 images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%201%e5%88%86%e4%b9%8bT.JPG" />是个无穷小的量,可以理解为最小的基本频率单位,而n是可以取从 images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e8%b4%9f%e6%97%a0%e7%a9%b7.JPG" /> images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e6%97%a0%e7%a9%b7%e5%a4%a7.JPG" />的值,所以 应该是可以表示 images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e8%b4%9f%e6%97%a0%e7%a9%b7.JPG" />到 images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e6%97%a0%e7%a9%b7%e5%a4%a7.JPG" />的频率。

当频率为负数时也是有意义的,因为周期可正可负,对于周期函数,相同数值的正周期和相同数值的负周期是等价的,所以负频率和相同数值的正频率也是等价的。当n给定一个具体的值时,由于images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20%e5%86%8d%e4%bb%a4.JPG" /> ,就给定了一个特定的频率images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20TFn.JPG" />(或者说傅立叶变换公式)的右边就表示了函数f(x)中该特定频率的部分。

24快速傅立叶变换FFT

将数字图像作为二纬函数f(x,y)通过傅立叶变换,转换到频率域上以后就可以根据具体需要进行各种滤波处理了,完成滤波后在通过反变换就可以得到特定增强滤波处理后的图像了。但实际上傅立叶变换的算法复杂度是很高的,处理的效率很低,对于一纬函数f(x),如果有M个点,则需要进行images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20M2.JPG" />次的乘法运算,而且我们知道乘法运算的在CPU上执行的效率并不高。于是快速傅立叶变换就显得特别的有用了,通过一系列的数学上的技巧和等价,进行相同的一纬M个点的变换FFT只需要进行 images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20MLogM.JPG" />次的相同运算。FFT算法比标准的傅立叶变换算法的效率要高 images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba%20FFT%e7%ae%97%e6%b3%95%e4%bc%98%e5%8a%bf.JPG" />倍,当M增大时,FFT的优势将迅速变得非常巨大。当M256个点时,FFT要比标准傅立叶变换快106倍;当M1024个点时,FFT要快340倍;当M65536个点时,FFT要快13625倍!!!

FFT算法的基本思想如下图1-2所示:

images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba1-2.JPG" />

1-2

上图是8个点的FFT处理过程,又称为蝶形算法。因为每一级的处理都上下交叉,每个交叉处就像一只蝴蝶一样。每个交叉处的处理过程如图1-3所示:

images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba1-3.JPG" />

1-3

3频率域滤波

31滤波的基本原理

原始图像的二维函数被分解为不同频率的信号后,高频的信号携带了图像的细节部分信息(比如图像的边界),低频的信号包含了图像的粗糙背景信息。对这些不同频率的信号,进行处理就可以实现相应的加强图像的目的。例如让低频信号加强,可以让图像细节对比加强,达到锐化的效果,去掉低频就可以把细节部分剔除,仅仅得到大致背景轮廓的图像。

32常用的基本滤波器

最常用的有理想高通滤波器(如图1- 4所示),理想低通滤波器(如图1-5所示)。理想高通滤波器让低于某个指定门限值频率的信号全部为零,其它频率的信号保持不变;理想低通滤波器让高于某个门限值频率的信号全部为零。

images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba1-4.JPG" />

1-4     理想高通滤波器

images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba1-5.JPG" />

1-5     理想低通滤波器

在编写程序实现前,可以预先判断理想低通滤波器将模糊细节。对于512*512大小的标准图像lena,设置门限值频率为40。处理前的效果如图1-6,右边是频率域的图像表示。

images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba1-6.JPG" />

1-6

进行滤波处理后的效果如图1-7所示,注意到频率的图像的中心40半径以外的部分是全黑的,因为滤波器将大于40频率的信号全部变为了零。

images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba1-7.JPG" />

1-7

为了便于更清晰对比,将滤波后的图像与滤波前的图像放大2倍进行比对如图1-8所示:

images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba1-8.JPG" />

1-8

对于理想高通滤波器,过滤掉低频信号后,大的背景低色信息将会丢失只留下图像边缘轮廓的信息,设置门限值频率为40,处理后的效果如图1-9所示:

images/p_blog_csdn_net/gamer_gerald/279381/o_%e9%a2%91%e7%8e%87%e5%9f%9f%e4%b8%8a%e7%9a%84%e5%9b%be%e5%83%8f%e5%a2%9e%e5%bc%ba1-9.JPG" /> 

1-9

4结论

本课程报告比较细致的数学上分析了傅立叶变换,并通过数学上的讨论去进一步理解傅立叶变换,比较深入的理解了傅立叶变换以及建立在该变换基础之上的数字图像在频率域上的增强。最后自己编程实现了FFT及反FFT算法,在程序中实现了两种最基本的滤波器,比较扎实的掌握了这部分的知识。

 

 

 

 

 

5参考文献

[1]Rafael C. Gonzalez, Richard E. Woods, Digital Image Processing Second Edition, 2005

[2]杨志和微积分, 2002

[3]陈生潭郭宝龙信号与系统 第二版, 2001

[4]燕庆明信号与系统教程, 2004

[5]Kenneth. R. Castleman, Digital Image Processing, 1998

[6]何东健耿楠数字图像处理, 2003


http://www.niftyadmin.cn/n/791141.html

相关文章

hashCode的性能优化

本文主要讨论下不同的hashCode()的实现对应用程序的性能影响。 hashCode()方法的主要目的就是使得一个对象能成为hashMap的key或者存储到hashset中。这种情况下对象还得实现equals(Object)方法,它的实现和hashCode()必须是一致的: 如果a.equals(b)那么a.…

【转载】全面实践理解 ASP.NET Core 依赖注入

DI在.NET Core里面被提到了一个非常重要的位置, 这篇文章主要再给大家普及一下关于依赖注入的概念,身边有工作六七年的同事还个东西搞不清楚。另外再介绍一下.NET Core的DI实现以及对实例生命周期的管理(这个是经常面试会问到的问题&#xf…

Android targetSdkVersion 原理+总结

懒人看总结: 1.targetSDKVersion是 Android 系统提供前向兼容的主要手段。随着 Android 系统的升级,某个系统的 API 或者模块的行为可能会发生改变,但是为了保证老 APK 的行为还是和以前兼容。只要 APK 的 targetSdkVersion 不变,…

频率域图像增强技术

1、在图像中,像元的灰度值随位置变化的频繁程度可以用频率来表示,这是一种随位置变化的空间频率。是指连续像元的灰度值的最高值与最低值的差。Jensen定义空间频率为“对影像的特定部分,单位距离内亮度值的变化数量”。 在频率域平面上&#…

SpannableString的基本用法

原文地址:http://www.cnblogs.com/kross/p/3645594.html 以前一直好奇QQ的输入框里面是如何出现表情的,今天看了下这个,心中发出“原来是这样啊”的感叹。 通常情况下,我们都是使用字符串类型的变量,直接放置在TextVie…

Supporting Different Platform Versions 多平台版本支持官方文档

https://developer.android.google.cn/training/basics/supporting-devices/platforms.html#version-codes Supporting Different Platform Versions 上一课下一课This lesson teaches you to Specify Minimum and Target API LevelsCheck System Version at RuntimeUse Platf…

计算机视觉 牛人们的BLOG

这个是个牛人关于计算机视觉方面。。。做的非常好。。。 about multi-camera: http://server.cs.ucf.edu/~vision/projects.html about 3D Voxel Coloring Rob Hess: http://blogs.oregonstate.edu/hess/code/voxels/ About the particle filters--condensation filter:ht…

VMWare安装CentOS问题-网络配置问题(完结)

安装了CentOS发现网络一直连接不了,期间有很多问题,篇尾有自己最后的配置信息 配置过程问题: 问题一:Bringing up interface eth0: Error: Unknown connection: a4158699-b687-428c-8bce-45dcde9286d3. 解决办法: …