图像复原之逆滤波

1 篇文章 0 订阅
1 篇文章 0 订阅

1.逆滤波的问题点

      图像的老化,可以视为以下这样的一个过程。一个是退化函数的影响(致使图片模糊,褪色等),一个可加性噪声的影响。

用算式表示为 

    前几篇博文,主要是介绍可加性噪声的去除。本博文,主要介绍图像的逆滤波,即退化函数的去除。然而,逆滤波在空间域内的处理是很不方便的。
    简单的来考虑,加法的逆运算是减法,乘法的逆运算的除法,微分的逆运算是积分(严密一点说是不定积分)。那么就可以得到一个简单的结论了,要出去卷积的话,肯定需要用到卷积的逆运算。卷积的逆运算是---------反卷积,额,好像是一个理所应当的名字。 我们建立了一个关于卷积的直观认识,将信号反转与滤波器系数求积和。那么,反卷积是一种什么样的运算呢?或者具体的来讲,反卷积的空间运算表现形式是什么样的?这样的考虑其实是多余的,或者说,不用考虑的那么复杂。
    在之前的博文中([数字图像处理]频域滤波(1)--基础与低通滤波器),我们得到这样的一个重要的结论。空间域内的卷积,其实就是频域内的乘积。那么这么考虑,就非常简单了,频域内的逆滤波运算,其实就是做除法。我们通过傅里叶变换,可以得到如下一个频域内的老化模型。
    

这样一个表达式内,没有了卷积运算,是一个很简单的四则运算。那么,所谓的去卷积或者逆滤波,就是将退化函数去除的过程。这样看来的话,直接做除法就可以了,如下所示。

    按照教材上的说法,这个表达式很有趣(哪里有趣了?)。首先,必须知道精确的退化函数。其次,如果退化函数含有0值或者极小值的话,会使得噪声项变得极大。
    综上所述,其实逆滤波的问题点有两个:、
    1.退化函数的推测。
    2.尽可能的不让噪声项影响画质。
   

2.两个退化函数的模型

   2.1 大气湍流模型 


   这个模型很简单,与高斯LPF很相似。伴随着值的增大,得到的图像越来越模糊。以下是这个模型执行的结果。

从表示式上可以看出,这个模型是不会有0值的,不过,这个模型与低通滤波器很相似,阻带的值都是极小的。这可能会使得图像的直接逆滤波失败。这个之后再说。
    

     2.2 运动模糊模型

     这个模型其实在Photoshop上也有一个同名的滤镜。详细的推倒我就不做了,这个模型的表达式如下所示。

这里有几个参数,说明一下。表示曝光时间,这里的表示了水平移动量与垂直移动量。值得一提的是,不要忘记下面这样一个重要的极限。
注意,运动模糊后的图像的尺寸会变化,如果还是按照原图截取,会造成图像成分的损失,在复原图像时候效果不是太好,而且不知道导致效果不好的原因,是由于成分的缺失,还是噪声的干扰。所以,这里我适当的扩展了图像的尺寸,以保留图像的所有成分
    此模型的执行结果如下所示。


3.图像的逆滤波

   3.1 实验步骤与实验用图像

   我们是这样的一个实验步骤,首先,使用退化函数处理图像,然后加上适当的可加性噪声。使用这样的图像进行逆滤波实验。
   下面是实验用图像。图像的噪声选用的是高斯噪声,均值为0,方差为0.08。退化函数则选用先前叙述的两种,一个个大气湍流模型,一个是运动模糊。

    3.2 直接逆滤波

    所谓直接逆滤波,就是不管噪声的影响,直接进行逆滤波的方法。

对于大气湍流模型而言,直接逆滤波会得到很不理想的结果。下面是直接逆滤波的实验结果。

     实验结果完全没有任何价值。观察其频谱,频谱的四角很亮,而原本频谱最亮的直流分量都看不到了。所以,这里做一个限制处理。也就是,仅仅只处理靠近直流分量的部分,其他的不做处理。然后处理完的结果,过一个10阶巴特沃斯低通滤波器。可以得到如下结果。

     这样的话,只需要调整限制半径,可以得到一个比之前较好的结果。当然,这招在运动模糊的图片面前,就略显得无力了。结果我就不贴了。

     3.3 维纳滤波器

     维纳滤波器的推导,其实是个很复杂的过程。这里就不推导了,直接看结果,可以得到一些有用的结论。
观察式子,对于合适的常数,有如下两个结论。
1.对于退化函数很小的点,相对而言常数 的值很大,其倒数 不会太大。
2.对于退化函数很小的点,相对而言常数的值很小,其倒数 基本保持不变。

下面的维纳滤波器的实验结果:



    3.4 约束最小二乘方滤波

    其实这个方法是一个很好的想法,将图像的能量作为评价图像平滑程度的度量,尽可能的将其平滑。设噪声的能量是一个定值,使用拉普拉斯未定系数法,将其进行迭代,然后解开。 这种方法有了很多的变种,包括很著名的TV(Total Variation,全变分)模型,这个我之后的博文会讲到。
    在这里,使用本方法的目的是,减少噪音对于逆滤波的影响。表达式如下所示。

这个滤波器,可以消除很严重的噪声,并且复原图像。将实验用图像的噪声的方差提升到0.2,再进行滤波,可以得到如下结果。


    4 实验代码

<a target=_blank id="L1" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;">   1</a>
<a target=_blank id="L2" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;">   2</a>
<a target=_blank id="L3" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;">   3</a>
<a target=_blank id="L4" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;">   4</a>
<a target=_blank id="L5" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;">   5</a>
<a target=_blank id="L6" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L6" rel="#L6" style="color: rgb(102, 102, 102); text-decoration: none;">   6</a>
<a target=_blank id="L7" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L7" rel="#L7" style="color: rgb(102, 102, 102); text-decoration: none;">   7</a>
<a target=_blank id="L8" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L8" rel="#L8" style="color: rgb(102, 102, 102); text-decoration: none;">   8</a>
<a target=_blank id="L9" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L9" rel="#L9" style="color: rgb(102, 102, 102); text-decoration: none;">   9</a>
<a target=_blank id="L10" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L10" rel="#L10" style="color: rgb(102, 102, 102); text-decoration: none;">  10</a>
<a target=_blank id="L11" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L11" rel="#L11" style="color: rgb(102, 102, 102); text-decoration: none;">  11</a>
<a target=_blank id="L12" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L12" rel="#L12" style="color: rgb(102, 102, 102); text-decoration: none;">  12</a>
<a target=_blank id="L13" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L13" rel="#L13" style="color: rgb(102, 102, 102); text-decoration: none;">  13</a>
<a target=_blank id="L14" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L14" rel="#L14" style="color: rgb(102, 102, 102); text-decoration: none;">  14</a>
<a target=_blank id="L15" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L15" rel="#L15" style="color: rgb(102, 102, 102); text-decoration: none;">  15</a>
<a target=_blank id="L16" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L16" rel="#L16" style="color: rgb(102, 102, 102); text-decoration: none;">  16</a>
<a target=_blank id="L17" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L17" rel="#L17" style="color: rgb(102, 102, 102); text-decoration: none;">  17</a>
<a target=_blank id="L18" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L18" rel="#L18" style="color: rgb(102, 102, 102); text-decoration: none;">  18</a>
<a target=_blank id="L19" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L19" rel="#L19" style="color: rgb(102, 102, 102); text-decoration: none;">  19</a>
<a target=_blank id="L20" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L20" rel="#L20" style="color: rgb(102, 102, 102); text-decoration: none;">  20</a>
<a target=_blank id="L21" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L21" rel="#L21" style="color: rgb(102, 102, 102); text-decoration: none;">  21</a>
<a target=_blank id="L22" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L22" rel="#L22" style="color: rgb(102, 102, 102); text-decoration: none;">  22</a>
<a target=_blank id="L23" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L23" rel="#L23" style="color: rgb(102, 102, 102); text-decoration: none;">  23</a>
<a target=_blank id="L24" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L24" rel="#L24" style="color: rgb(102, 102, 102); text-decoration: none;">  24</a>
<a target=_blank id="L25" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L25" rel="#L25" style="color: rgb(102, 102, 102); text-decoration: none;">  25</a>
<a target=_blank id="L26" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L26" rel="#L26" style="color: rgb(102, 102, 102); text-decoration: none;">  26</a>
<a target=_blank id="L27" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L27" rel="#L27" style="color: rgb(102, 102, 102); text-decoration: none;">  27</a>
<a target=_blank id="L28" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L28" rel="#L28" style="color: rgb(102, 102, 102); text-decoration: none;">  28</a>
<a target=_blank id="L29" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L29" rel="#L29" style="color: rgb(102, 102, 102); text-decoration: none;">  29</a>
<a target=_blank id="L30" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L30" rel="#L30" style="color: rgb(102, 102, 102); text-decoration: none;">  30</a>
<a target=_blank id="L31" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L31" rel="#L31" style="color: rgb(102, 102, 102); text-decoration: none;">  31</a>
<a target=_blank id="L32" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L32" rel="#L32" style="color: rgb(102, 102, 102); text-decoration: none;">  32</a>
<a target=_blank id="L33" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L33" rel="#L33" style="color: rgb(102, 102, 102); text-decoration: none;">  33</a>
<a target=_blank id="L34" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L34" rel="#L34" style="color: rgb(102, 102, 102); text-decoration: none;">  34</a>
<a target=_blank id="L35" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L35" rel="#L35" style="color: rgb(102, 102, 102); text-decoration: none;">  35</a>
<a target=_blank id="L36" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L36" rel="#L36" style="color: rgb(102, 102, 102); text-decoration: none;">  36</a>
<a target=_blank id="L37" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L37" rel="#L37" style="color: rgb(102, 102, 102); text-decoration: none;">  37</a>
<a target=_blank id="L38" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L38" rel="#L38" style="color: rgb(102, 102, 102); text-decoration: none;">  38</a>
<a target=_blank id="L39" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L39" rel="#L39" style="color: rgb(102, 102, 102); text-decoration: none;">  39</a>
<a target=_blank id="L40" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L40" rel="#L40" style="color: rgb(102, 102, 102); text-decoration: none;">  40</a>
<a target=_blank id="L41" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L41" rel="#L41" style="color: rgb(102, 102, 102); text-decoration: none;">  41</a>
<a target=_blank id="L42" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L42" rel="#L42" style="color: rgb(102, 102, 102); text-decoration: none;">  42</a>
<a target=_blank id="L43" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L43" rel="#L43" style="color: rgb(102, 102, 102); text-decoration: none;">  43</a>
<a target=_blank id="L44" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L44" rel="#L44" style="color: rgb(102, 102, 102); text-decoration: none;">  44</a>
<a target=_blank id="L45" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L45" rel="#L45" style="color: rgb(102, 102, 102); text-decoration: none;">  45</a>
<a target=_blank id="L46" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L46" rel="#L46" style="color: rgb(102, 102, 102); text-decoration: none;">  46</a>
<a target=_blank id="L47" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L47" rel="#L47" style="color: rgb(102, 102, 102); text-decoration: none;">  47</a>
<a target=_blank id="L48" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L48" rel="#L48" style="color: rgb(102, 102, 102); text-decoration: none;">  48</a>
<a target=_blank id="L49" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L49" rel="#L49" style="color: rgb(102, 102, 102); text-decoration: none;">  49</a>
<a target=_blank id="L50" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L50" rel="#L50" style="color: rgb(102, 102, 102); text-decoration: none;">  50</a>
<a target=_blank id="L51" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L51" rel="#L51" style="color: rgb(102, 102, 102); text-decoration: none;">  51</a>
<a target=_blank id="L52" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L52" rel="#L52" style="color: rgb(102, 102, 102); text-decoration: none;">  52</a>
<a target=_blank id="L53" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L53" rel="#L53" style="color: rgb(102, 102, 102); text-decoration: none;">  53</a>
<a target=_blank id="L54" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L54" rel="#L54" style="color: rgb(102, 102, 102); text-decoration: none;">  54</a>
<a target=_blank id="L55" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L55" rel="#L55" style="color: rgb(102, 102, 102); text-decoration: none;">  55</a>
<a target=_blank id="L56" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L56" rel="#L56" style="color: rgb(102, 102, 102); text-decoration: none;">  56</a>
<a target=_blank id="L57" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L57" rel="#L57" style="color: rgb(102, 102, 102); text-decoration: none;">  57</a>
<a target=_blank id="L58" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L58" rel="#L58" style="color: rgb(102, 102, 102); text-decoration: none;">  58</a>
<a target=_blank id="L59" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L59" rel="#L59" style="color: rgb(102, 102, 102); text-decoration: none;">  59</a>
<a target=_blank id="L60" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L60" rel="#L60" style="color: rgb(102, 102, 102); text-decoration: none;">  60</a>
<a target=_blank id="L61" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L61" rel="#L61" style="color: rgb(102, 102, 102); text-decoration: none;">  61</a>
<a target=_blank id="L62" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L62" rel="#L62" style="color: rgb(102, 102, 102); text-decoration: none;">  62</a>
<a target=_blank id="L63" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L63" rel="#L63" style="color: rgb(102, 102, 102); text-decoration: none;">  63</a>
<a target=_blank id="L64" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L64" rel="#L64" style="color: rgb(102, 102, 102); text-decoration: none;">  64</a>
<a target=_blank id="L65" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L65" rel="#L65" style="color: rgb(102, 102, 102); text-decoration: none;">  65</a>
<a target=_blank id="L66" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L66" rel="#L66" style="color: rgb(102, 102, 102); text-decoration: none;">  66</a>
<a target=_blank id="L67" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L67" rel="#L67" style="color: rgb(102, 102, 102); text-decoration: none;">  67</a>
<a target=_blank id="L68" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L68" rel="#L68" style="color: rgb(102, 102, 102); text-decoration: none;">  68</a>
<a target=_blank id="L69" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L69" rel="#L69" style="color: rgb(102, 102, 102); text-decoration: none;">  69</a>
<a target=_blank id="L70" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L70" rel="#L70" style="color: rgb(102, 102, 102); text-decoration: none;">  70</a>
<a target=_blank id="L71" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L71" rel="#L71" style="color: rgb(102, 102, 102); text-decoration: none;">  71</a>
<a target=_blank id="L72" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L72" rel="#L72" style="color: rgb(102, 102, 102); text-decoration: none;">  72</a>
<a target=_blank id="L73" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L73" rel="#L73" style="color: rgb(102, 102, 102); text-decoration: none;">  73</a>
<a target=_blank id="L74" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L74" rel="#L74" style="color: rgb(102, 102, 102); text-decoration: none;">  74</a>
<a target=_blank id="L75" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L75" rel="#L75" style="color: rgb(102, 102, 102); text-decoration: none;">  75</a>
<a target=_blank id="L76" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L76" rel="#L76" style="color: rgb(102, 102, 102); text-decoration: none;">  76</a>
<a target=_blank id="L77" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L77" rel="#L77" style="color: rgb(102, 102, 102); text-decoration: none;">  77</a>
<a target=_blank id="L78" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L78" rel="#L78" style="color: rgb(102, 102, 102); text-decoration: none;">  78</a>
<a target=_blank id="L79" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L79" rel="#L79" style="color: rgb(102, 102, 102); text-decoration: none;">  79</a>
<a target=_blank id="L80" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L80" rel="#L80" style="color: rgb(102, 102, 102); text-decoration: none;">  80</a>
<a target=_blank id="L81" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L81" rel="#L81" style="color: rgb(102, 102, 102); text-decoration: none;">  81</a>
<a target=_blank id="L82" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L82" rel="#L82" style="color: rgb(102, 102, 102); text-decoration: none;">  82</a>
<a target=_blank id="L83" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L83" rel="#L83" style="color: rgb(102, 102, 102); text-decoration: none;">  83</a>
<a target=_blank id="L84" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L84" rel="#L84" style="color: rgb(102, 102, 102); text-decoration: none;">  84</a>
<a target=_blank id="L85" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L85" rel="#L85" style="color: rgb(102, 102, 102); text-decoration: none;">  85</a>
<a target=_blank id="L86" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L86" rel="#L86" style="color: rgb(102, 102, 102); text-decoration: none;">  86</a>
<a target=_blank id="L87" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L87" rel="#L87" style="color: rgb(102, 102, 102); text-decoration: none;">  87</a>
<a target=_blank id="L88" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L88" rel="#L88" style="color: rgb(102, 102, 102); text-decoration: none;">  88</a>
<a target=_blank id="L89" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L89" rel="#L89" style="color: rgb(102, 102, 102); text-decoration: none;">  89</a>
<a target=_blank id="L90" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L90" rel="#L90" style="color: rgb(102, 102, 102); text-decoration: none;">  90</a>
<a target=_blank id="L91" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L91" rel="#L91" style="color: rgb(102, 102, 102); text-decoration: none;">  91</a>
<a target=_blank id="L92" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L92" rel="#L92" style="color: rgb(102, 102, 102); text-decoration: none;">  92</a>
<a target=_blank id="L93" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L93" rel="#L93" style="color: rgb(102, 102, 102); text-decoration: none;">  93</a>
<a target=_blank id="L94" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L94" rel="#L94" style="color: rgb(102, 102, 102); text-decoration: none;">  94</a>
<a target=_blank id="L95" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L95" rel="#L95" style="color: rgb(102, 102, 102); text-decoration: none;">  95</a>
<a target=_blank id="L96" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L96" rel="#L96" style="color: rgb(102, 102, 102); text-decoration: none;">  96</a>
<a target=_blank id="L97" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L97" rel="#L97" style="color: rgb(102, 102, 102); text-decoration: none;">  97</a>
<a target=_blank id="L98" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L98" rel="#L98" style="color: rgb(102, 102, 102); text-decoration: none;">  98</a>
<a target=_blank id="L99" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L99" rel="#L99" style="color: rgb(102, 102, 102); text-decoration: none;">  99</a>
<a target=_blank id="L100" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L100" rel="#L100" style="color: rgb(102, 102, 102); text-decoration: none;"> 100</a>
<a target=_blank id="L101" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L101" rel="#L101" style="color: rgb(102, 102, 102); text-decoration: none;"> 101</a>
<a target=_blank id="L102" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L102" rel="#L102" style="color: rgb(102, 102, 102); text-decoration: none;"> 102</a>
<a target=_blank id="L103" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L103" rel="#L103" style="color: rgb(102, 102, 102); text-decoration: none;"> 103</a>
<a target=_blank id="L104" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L104" rel="#L104" style="color: rgb(102, 102, 102); text-decoration: none;"> 104</a>
<a target=_blank id="L105" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L105" rel="#L105" style="color: rgb(102, 102, 102); text-decoration: none;"> 105</a>
<a target=_blank id="L106" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L106" rel="#L106" style="color: rgb(102, 102, 102); text-decoration: none;"> 106</a>
<a target=_blank id="L107" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L107" rel="#L107" style="color: rgb(102, 102, 102); text-decoration: none;"> 107</a>
<a target=_blank id="L108" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L108" rel="#L108" style="color: rgb(102, 102, 102); text-decoration: none;"> 108</a>
<a target=_blank id="L109" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L109" rel="#L109" style="color: rgb(102, 102, 102); text-decoration: none;"> 109</a>
<a target=_blank id="L110" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L110" rel="#L110" style="color: rgb(102, 102, 102); text-decoration: none;"> 110</a>
<a target=_blank id="L111" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L111" rel="#L111" style="color: rgb(102, 102, 102); text-decoration: none;"> 111</a>
<a target=_blank id="L112" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L112" rel="#L112" style="color: rgb(102, 102, 102); text-decoration: none;"> 112</a>
<a target=_blank id="L113" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L113" rel="#L113" style="color: rgb(102, 102, 102); text-decoration: none;"> 113</a>
<a target=_blank id="L114" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L114" rel="#L114" style="color: rgb(102, 102, 102); text-decoration: none;"> 114</a>
<a target=_blank id="L115" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L115" rel="#L115" style="color: rgb(102, 102, 102); text-decoration: none;"> 115</a>
<a target=_blank id="L116" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L116" rel="#L116" style="color: rgb(102, 102, 102); text-decoration: none;"> 116</a>
<a target=_blank id="L117" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L117" rel="#L117" style="color: rgb(102, 102, 102); text-decoration: none;"> 117</a>
<a target=_blank id="L118" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L118" rel="#L118" style="color: rgb(102, 102, 102); text-decoration: none;"> 118</a>
<a target=_blank id="L119" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L119" rel="#L119" style="color: rgb(102, 102, 102); text-decoration: none;"> 119</a>
<a target=_blank id="L120" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L120" rel="#L120" style="color: rgb(102, 102, 102); text-decoration: none;"> 120</a>
<a target=_blank id="L121" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L121" rel="#L121" style="color: rgb(102, 102, 102); text-decoration: none;"> 121</a>
<a target=_blank id="L122" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L122" rel="#L122" style="color: rgb(102, 102, 102); text-decoration: none;"> 122</a>
<a target=_blank id="L123" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L123" rel="#L123" style="color: rgb(102, 102, 102); text-decoration: none;"> 123</a>
<a target=_blank id="L124" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L124" rel="#L124" style="color: rgb(102, 102, 102); text-decoration: none;"> 124</a>
<a target=_blank id="L125" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L125" rel="#L125" style="color: rgb(102, 102, 102); text-decoration: none;"> 125</a>
<a target=_blank id="L126" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L126" rel="#L126" style="color: rgb(102, 102, 102); text-decoration: none;"> 126</a>
<a target=_blank id="L127" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L127" rel="#L127" style="color: rgb(102, 102, 102); text-decoration: none;"> 127</a>
<a target=_blank id="L128" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L128" rel="#L128" style="color: rgb(102, 102, 102); text-decoration: none;"> 128</a>
<a target=_blank id="L129" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L129" rel="#L129" style="color: rgb(102, 102, 102); text-decoration: none;"> 129</a>
<a target=_blank id="L130" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L130" rel="#L130" style="color: rgb(102, 102, 102); text-decoration: none;"> 130</a>
<a target=_blank id="L131" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L131" rel="#L131" style="color: rgb(102, 102, 102); text-decoration: none;"> 131</a>
<a target=_blank id="L132" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L132" rel="#L132" style="color: rgb(102, 102, 102); text-decoration: none;"> 132</a>
<a target=_blank id="L133" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L133" rel="#L133" style="color: rgb(102, 102, 102); text-decoration: none;"> 133</a>
<a target=_blank id="L134" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L134" rel="#L134" style="color: rgb(102, 102, 102); text-decoration: none;"> 134</a>
<a target=_blank id="L135" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L135" rel="#L135" style="color: rgb(102, 102, 102); text-decoration: none;"> 135</a>
<a target=_blank id="L136" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L136" rel="#L136" style="color: rgb(102, 102, 102); text-decoration: none;"> 136</a>
<a target=_blank id="L137" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L137" rel="#L137" style="color: rgb(102, 102, 102); text-decoration: none;"> 137</a>
<a target=_blank id="L138" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L138" rel="#L138" style="color: rgb(102, 102, 102); text-decoration: none;"> 138</a>
<a target=_blank id="L139" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L139" rel="#L139" style="color: rgb(102, 102, 102); text-decoration: none;"> 139</a>
<a target=_blank id="L140" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L140" rel="#L140" style="color: rgb(102, 102, 102); text-decoration: none;"> 140</a>
<a target=_blank id="L141" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L141" rel="#L141" style="color: rgb(102, 102, 102); text-decoration: none;"> 141</a>
<a target=_blank id="L142" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L142" rel="#L142" style="color: rgb(102, 102, 102); text-decoration: none;"> 142</a>
<a target=_blank id="L143" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L143" rel="#L143" style="color: rgb(102, 102, 102); text-decoration: none;"> 143</a>
<a target=_blank id="L144" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L144" rel="#L144" style="color: rgb(102, 102, 102); text-decoration: none;"> 144</a>
<a target=_blank id="L145" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L145" rel="#L145" style="color: rgb(102, 102, 102); text-decoration: none;"> 145</a>
<a target=_blank id="L146" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L146" rel="#L146" style="color: rgb(102, 102, 102); text-decoration: none;"> 146</a>
<a target=_blank id="L147" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L147" rel="#L147" style="color: rgb(102, 102, 102); text-decoration: none;"> 147</a>
<a target=_blank id="L148" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L148" rel="#L148" style="color: rgb(102, 102, 102); text-decoration: none;"> 148</a>
<a target=_blank id="L149" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L149" rel="#L149" style="color: rgb(102, 102, 102); text-decoration: none;"> 149</a>
<a target=_blank id="L150" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L150" rel="#L150" style="color: rgb(102, 102, 102); text-decoration: none;"> 150</a>
<a target=_blank id="L151" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L151" rel="#L151" style="color: rgb(102, 102, 102); text-decoration: none;"> 151</a>
<a target=_blank id="L152" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L152" rel="#L152" style="color: rgb(102, 102, 102); text-decoration: none;"> 152</a>
<a target=_blank id="L153" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L153" rel="#L153" style="color: rgb(102, 102, 102); text-decoration: none;"> 153</a>
<a target=_blank id="L154" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L154" rel="#L154" style="color: rgb(102, 102, 102); text-decoration: none;"> 154</a>
<a target=_blank id="L155" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L155" rel="#L155" style="color: rgb(102, 102, 102); text-decoration: none;"> 155</a>
<a target=_blank id="L156" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L156" rel="#L156" style="color: rgb(102, 102, 102); text-decoration: none;"> 156</a>
<a target=_blank id="L157" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L157" rel="#L157" style="color: rgb(102, 102, 102); text-decoration: none;"> 157</a>
<a target=_blank id="L158" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L158" rel="#L158" style="color: rgb(102, 102, 102); text-decoration: none;"> 158</a>
<a target=_blank id="L159" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L159" rel="#L159" style="color: rgb(102, 102, 102); text-decoration: none;"> 159</a>
<a target=_blank id="L160" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L160" rel="#L160" style="color: rgb(102, 102, 102); text-decoration: none;"> 160</a>
<a target=_blank id="L161" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L161" rel="#L161" style="color: rgb(102, 102, 102); text-decoration: none;"> 161</a>
<a target=_blank id="L162" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L162" rel="#L162" style="color: rgb(102, 102, 102); text-decoration: none;"> 162</a>
<a target=_blank id="L163" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L163" rel="#L163" style="color: rgb(102, 102, 102); text-decoration: none;"> 163</a>
<a target=_blank id="L164" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L164" rel="#L164" style="color: rgb(102, 102, 102); text-decoration: none;"> 164</a>
<a target=_blank id="L165" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L165" rel="#L165" style="color: rgb(102, 102, 102); text-decoration: none;"> 165</a>
<a target=_blank id="L166" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L166" rel="#L166" style="color: rgb(102, 102, 102); text-decoration: none;"> 166</a>
<a target=_blank id="L167" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L167" rel="#L167" style="color: rgb(102, 102, 102); text-decoration: none;"> 167</a>
<a target=_blank id="L168" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L168" rel="#L168" style="color: rgb(102, 102, 102); text-decoration: none;"> 168</a>
<a target=_blank id="L169" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L169" rel="#L169" style="color: rgb(102, 102, 102); text-decoration: none;"> 169</a>
<a target=_blank id="L170" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L170" rel="#L170" style="color: rgb(102, 102, 102); text-decoration: none;"> 170</a>
<a target=_blank id="L171" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L171" rel="#L171" style="color: rgb(102, 102, 102); text-decoration: none;"> 171</a>
<a target=_blank id="L172" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L172" rel="#L172" style="color: rgb(102, 102, 102); text-decoration: none;"> 172</a>
<a target=_blank id="L173" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L173" rel="#L173" style="color: rgb(102, 102, 102); text-decoration: none;"> 173</a>
<a target=_blank id="L174" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L174" rel="#L174" style="color: rgb(102, 102, 102); text-decoration: none;"> 174</a>
<a target=_blank id="L175" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L175" rel="#L175" style="color: rgb(102, 102, 102); text-decoration: none;"> 175</a>
<a target=_blank id="L176" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L176" rel="#L176" style="color: rgb(102, 102, 102); text-decoration: none;"> 176</a>
<a target=_blank id="L177" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L177" rel="#L177" style="color: rgb(102, 102, 102); text-decoration: none;"> 177</a>
<a target=_blank id="L178" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L178" rel="#L178" style="color: rgb(102, 102, 102); text-decoration: none;"> 178</a>
<a target=_blank id="L179" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L179" rel="#L179" style="color: rgb(102, 102, 102); text-decoration: none;"> 179</a>
<a target=_blank id="L180" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L180" rel="#L180" style="color: rgb(102, 102, 102); text-decoration: none;"> 180</a>
<a target=_blank id="L181" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L181" rel="#L181" style="color: rgb(102, 102, 102); text-decoration: none;"> 181</a>
<a target=_blank id="L182" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L182" rel="#L182" style="color: rgb(102, 102, 102); text-decoration: none;"> 182</a>
<a target=_blank id="L183" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L183" rel="#L183" style="color: rgb(102, 102, 102); text-decoration: none;"> 183</a>
<a target=_blank id="L184" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L184" rel="#L184" style="color: rgb(102, 102, 102); text-decoration: none;"> 184</a>
<a target=_blank id="L185" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L185" rel="#L185" style="color: rgb(102, 102, 102); text-decoration: none;"> 185</a>
<a target=_blank id="L186" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L186" rel="#L186" style="color: rgb(102, 102, 102); text-decoration: none;"> 186</a>
<a target=_blank id="L187" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L187" rel="#L187" style="color: rgb(102, 102, 102); text-decoration: none;"> 187</a>
<a target=_blank id="L188" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L188" rel="#L188" style="color: rgb(102, 102, 102); text-decoration: none;"> 188</a>
<a target=_blank id="L189" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L189" rel="#L189" style="color: rgb(102, 102, 102); text-decoration: none;"> 189</a>
<a target=_blank id="L190" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L190" rel="#L190" style="color: rgb(102, 102, 102); text-decoration: none;"> 190</a>
<a target=_blank id="L191" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L191" rel="#L191" style="color: rgb(102, 102, 102); text-decoration: none;"> 191</a>
<a target=_blank id="L192" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L192" rel="#L192" style="color: rgb(102, 102, 102); text-decoration: none;"> 192</a>
<a target=_blank id="L193" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L193" rel="#L193" style="color: rgb(102, 102, 102); text-decoration: none;"> 193</a>
<a target=_blank id="L194" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L194" rel="#L194" style="color: rgb(102, 102, 102); text-decoration: none;"> 194</a>
<a target=_blank id="L195" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L195" rel="#L195" style="color: rgb(102, 102, 102); text-decoration: none;"> 195</a>
<a target=_blank id="L196" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L196" rel="#L196" style="color: rgb(102, 102, 102); text-decoration: none;"> 196</a>
<a target=_blank id="L197" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L197" rel="#L197" style="color: rgb(102, 102, 102); text-decoration: none;"> 197</a>
<a target=_blank id="L198" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L198" rel="#L198" style="color: rgb(102, 102, 102); text-decoration: none;"> 198</a>
<a target=_blank id="L199" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L199" rel="#L199" style="color: rgb(102, 102, 102); text-decoration: none;"> 199</a>
<a target=_blank id="L200" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L200" rel="#L200" style="color: rgb(102, 102, 102); text-decoration: none;"> 200</a>
<a target=_blank id="L201" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L201" rel="#L201" style="color: rgb(102, 102, 102); text-decoration: none;"> 201</a>
<a target=_blank id="L202" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L202" rel="#L202" style="color: rgb(102, 102, 102); text-decoration: none;"> 202</a>
<a target=_blank id="L203" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L203" rel="#L203" style="color: rgb(102, 102, 102); text-decoration: none;"> 203</a>
<a target=_blank id="L204" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L204" rel="#L204" style="color: rgb(102, 102, 102); text-decoration: none;"> 204</a>
<a target=_blank id="L205" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L205" rel="#L205" style="color: rgb(102, 102, 102); text-decoration: none;"> 205</a>
<a target=_blank id="L206" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L206" rel="#L206" style="color: rgb(102, 102, 102); text-decoration: none;"> 206</a>
<a target=_blank id="L207" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L207" rel="#L207" style="color: rgb(102, 102, 102); text-decoration: none;"> 207</a>
<a target=_blank id="L208" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L208" rel="#L208" style="color: rgb(102, 102, 102); text-decoration: none;"> 208</a>
<a target=_blank id="L209" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L209" rel="#L209" style="color: rgb(102, 102, 102); text-decoration: none;"> 209</a>
<a target=_blank id="L210" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L210" rel="#L210" style="color: rgb(102, 102, 102); text-decoration: none;"> 210</a>
<a target=_blank id="L211" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L211" rel="#L211" style="color: rgb(102, 102, 102); text-decoration: none;"> 211</a>
<a target=_blank id="L212" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L212" rel="#L212" style="color: rgb(102, 102, 102); text-decoration: none;"> 212</a>
<a target=_blank id="L213" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L213" rel="#L213" style="color: rgb(102, 102, 102); text-decoration: none;"> 213</a>
<a target=_blank id="L214" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L214" rel="#L214" style="color: rgb(102, 102, 102); text-decoration: none;"> 214</a>
<a target=_blank id="L215" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L215" rel="#L215" style="color: rgb(102, 102, 102); text-decoration: none;"> 215</a>
<a target=_blank id="L216" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L216" rel="#L216" style="color: rgb(102, 102, 102); text-decoration: none;"> 216</a>
<a target=_blank id="L217" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L217" rel="#L217" style="color: rgb(102, 102, 102); text-decoration: none;"> 217</a>
<a target=_blank id="L218" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L218" rel="#L218" style="color: rgb(102, 102, 102); text-decoration: none;"> 218</a>
<a target=_blank id="L219" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L219" rel="#L219" style="color: rgb(102, 102, 102); text-decoration: none;"> 219</a>
<a target=_blank id="L220" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L220" rel="#L220" style="color: rgb(102, 102, 102); text-decoration: none;"> 220</a>
<a target=_blank id="L221" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L221" rel="#L221" style="color: rgb(102, 102, 102); text-decoration: none;"> 221</a>
<a target=_blank id="L222" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L222" rel="#L222" style="color: rgb(102, 102, 102); text-decoration: none;"> 222</a>
<a target=_blank id="L223" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L223" rel="#L223" style="color: rgb(102, 102, 102); text-decoration: none;"> 223</a>
<a target=_blank id="L224" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L224" rel="#L224" style="color: rgb(102, 102, 102); text-decoration: none;"> 224</a>
<a target=_blank id="L225" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L225" rel="#L225" style="color: rgb(102, 102, 102); text-decoration: none;"> 225</a>
<a target=_blank id="L226" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L226" rel="#L226" style="color: rgb(102, 102, 102); text-decoration: none;"> 226</a>
<a target=_blank id="L227" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L227" rel="#L227" style="color: rgb(102, 102, 102); text-decoration: none;"> 227</a>
<a target=_blank id="L228" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L228" rel="#L228" style="color: rgb(102, 102, 102); text-decoration: none;"> 228</a>
<a target=_blank id="L229" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L229" rel="#L229" style="color: rgb(102, 102, 102); text-decoration: none;"> 229</a>
<a target=_blank id="L230" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L230" rel="#L230" style="color: rgb(102, 102, 102); text-decoration: none;"> 230</a>
<a target=_blank id="L231" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L231" rel="#L231" style="color: rgb(102, 102, 102); text-decoration: none;"> 231</a>
<a target=_blank id="L232" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L232" rel="#L232" style="color: rgb(102, 102, 102); text-decoration: none;"> 232</a>
<a target=_blank id="L233" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L233" rel="#L233" style="color: rgb(102, 102, 102); text-decoration: none;"> 233</a>
<a target=_blank id="L234" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L234" rel="#L234" style="color: rgb(102, 102, 102); text-decoration: none;"> 234</a>
<a target=_blank id="L235" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L235" rel="#L235" style="color: rgb(102, 102, 102); text-decoration: none;"> 235</a>
<a target=_blank id="L236" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L236" rel="#L236" style="color: rgb(102, 102, 102); text-decoration: none;"> 236</a>
<a target=_blank id="L237" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L237" rel="#L237" style="color: rgb(102, 102, 102); text-decoration: none;"> 237</a>
<a target=_blank id="L238" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L238" rel="#L238" style="color: rgb(102, 102, 102); text-decoration: none;"> 238</a>
<a target=_blank id="L239" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L239" rel="#L239" style="color: rgb(102, 102, 102); text-decoration: none;"> 239</a>
<a target=_blank id="L240" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L240" rel="#L240" style="color: rgb(102, 102, 102); text-decoration: none;"> 240</a>
<a target=_blank id="L241" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L241" rel="#L241" style="color: rgb(102, 102, 102); text-decoration: none;"> 241</a>
<a target=_blank id="L242" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L242" rel="#L242" style="color: rgb(102, 102, 102); text-decoration: none;"> 242</a>
<a target=_blank id="L243" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L243" rel="#L243" style="color: rgb(102, 102, 102); text-decoration: none;"> 243</a>
<a target=_blank id="L244" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L244" rel="#L244" style="color: rgb(102, 102, 102); text-decoration: none;"> 244</a>
<a target=_blank id="L245" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L245" rel="#L245" style="color: rgb(102, 102, 102); text-decoration: none;"> 245</a>
<a target=_blank id="L246" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L246" rel="#L246" style="color: rgb(102, 102, 102); text-decoration: none;"> 246</a>
<a target=_blank id="L247" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L247" rel="#L247" style="color: rgb(102, 102, 102); text-decoration: none;"> 247</a>
<a target=_blank id="L248" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L248" rel="#L248" style="color: rgb(102, 102, 102); text-decoration: none;"> 248</a>
<a target=_blank id="L249" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L249" rel="#L249" style="color: rgb(102, 102, 102); text-decoration: none;"> 249</a>
<a target=_blank id="L250" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L250" rel="#L250" style="color: rgb(102, 102, 102); text-decoration: none;"> 250</a>
<a target=_blank id="L251" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L251" rel="#L251" style="color: rgb(102, 102, 102); text-decoration: none;"> 251</a>
<a target=_blank id="L252" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L252" rel="#L252" style="color: rgb(102, 102, 102); text-decoration: none;"> 252</a>
<a target=_blank id="L253" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L253" rel="#L253" style="color: rgb(102, 102, 102); text-decoration: none;"> 253</a>
<a target=_blank id="L254" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L254" rel="#L254" style="color: rgb(102, 102, 102); text-decoration: none;"> 254</a>
<a target=_blank id="L255" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L255" rel="#L255" style="color: rgb(102, 102, 102); text-decoration: none;"> 255</a>
<a target=_blank id="L256" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L256" rel="#L256" style="color: rgb(102, 102, 102); text-decoration: none;"> 256</a>
<a target=_blank id="L257" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L257" rel="#L257" style="color: rgb(102, 102, 102); text-decoration: none;"> 257</a>
<a target=_blank id="L258" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L258" rel="#L258" style="color: rgb(102, 102, 102); text-decoration: none;"> 258</a>
<a target=_blank id="L259" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L259" rel="#L259" style="color: rgb(102, 102, 102); text-decoration: none;"> 259</a>
<a target=_blank id="L260" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L260" rel="#L260" style="color: rgb(102, 102, 102); text-decoration: none;"> 260</a>
<a target=_blank id="L261" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L261" rel="#L261" style="color: rgb(102, 102, 102); text-decoration: none;"> 261</a>
<a target=_blank id="L262" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L262" rel="#L262" style="color: rgb(102, 102, 102); text-decoration: none;"> 262</a>
<a target=_blank id="L263" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L263" rel="#L263" style="color: rgb(102, 102, 102); text-decoration: none;"> 263</a>
<a target=_blank id="L264" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L264" rel="#L264" style="color: rgb(102, 102, 102); text-decoration: none;"> 264</a>
<a target=_blank id="L265" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L265" rel="#L265" style="color: rgb(102, 102, 102); text-decoration: none;"> 265</a>
<a target=_blank id="L266" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L266" rel="#L266" style="color: rgb(102, 102, 102); text-decoration: none;"> 266</a>
<a target=_blank id="L267" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L267" rel="#L267" style="color: rgb(102, 102, 102); text-decoration: none;"> 267</a>
<a target=_blank id="L268" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L268" rel="#L268" style="color: rgb(102, 102, 102); text-decoration: none;"> 268</a>
<a target=_blank id="L269" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L269" rel="#L269" style="color: rgb(102, 102, 102); text-decoration: none;"> 269</a>
<a target=_blank id="L270" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L270" rel="#L270" style="color: rgb(102, 102, 102); text-decoration: none;"> 270</a>
<a target=_blank id="L271" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L271" rel="#L271" style="color: rgb(102, 102, 102); text-decoration: none;"> 271</a>
<a target=_blank id="L272" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L272" rel="#L272" style="color: rgb(102, 102, 102); text-decoration: none;"> 272</a>
<a target=_blank id="L273" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L273" rel="#L273" style="color: rgb(102, 102, 102); text-decoration: none;"> 273</a>
<a target=_blank id="L274" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L274" rel="#L274" style="color: rgb(102, 102, 102); text-decoration: none;"> 274</a>
<a target=_blank id="L275" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L275" rel="#L275" style="color: rgb(102, 102, 102); text-decoration: none;"> 275</a>
<a target=_blank id="L276" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L276" rel="#L276" style="color: rgb(102, 102, 102); text-decoration: none;"> 276</a>
<a target=_blank id="L277" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L277" rel="#L277" style="color: rgb(102, 102, 102); text-decoration: none;"> 277</a>
<a target=_blank id="L278" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L278" rel="#L278" style="color: rgb(102, 102, 102); text-decoration: none;"> 278</a>
<a target=_blank id="L279" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L279" rel="#L279" style="color: rgb(102, 102, 102); text-decoration: none;"> 279</a>
<a target=_blank id="L280" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L280" rel="#L280" style="color: rgb(102, 102, 102); text-decoration: none;"> 280</a>
<a target=_blank id="L281" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L281" rel="#L281" style="color: rgb(102, 102, 102); text-decoration: none;"> 281</a>
<a target=_blank id="L282" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L282" rel="#L282" style="color: rgb(102, 102, 102); text-decoration: none;"> 282</a>
<a target=_blank id="L283" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L283" rel="#L283" style="color: rgb(102, 102, 102); text-decoration: none;"> 283</a>
<a target=_blank id="L284" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L284" rel="#L284" style="color: rgb(102, 102, 102); text-decoration: none;"> 284</a>
<a target=_blank id="L285" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L285" rel="#L285" style="color: rgb(102, 102, 102); text-decoration: none;"> 285</a>
<a target=_blank id="L286" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L286" rel="#L286" style="color: rgb(102, 102, 102); text-decoration: none;"> 286</a>
<a target=_blank id="L287" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L287" rel="#L287" style="color: rgb(102, 102, 102); text-decoration: none;"> 287</a>
<a target=_blank id="L288" href="http://blog.csdn.net/zhoufan900428/article/details/38064125#L288" rel="#L288" style="color: rgb(102, 102, 102); text-decoration: none;"> 288</a>
            
            
close all ;
clear all ;
clc ;
%% ----------init-----------------------------
f = imread ( './original_DIP.tif' );
f = mat2gray ( f ,[ 0 255 ]);
f_original = f ;
[ M , N ] = size ( f );
P = 2 * M ;
Q = 2 * N ;
fc = zeros ( M , N );
for x = 1 : 1 : M
for y = 1 : 1 : N
fc ( x , y ) = f ( x , y ) * ( - 1 )^ ( x + y );
end
end
F_I = fft2 ( fc , P , Q );
figure ();
subplot ( 1 , 2 , 1 );
imshow ( f ,[ 0 1 ]);
xlabel ( 'a).Original Image' );
subplot ( 1 , 2 , 2 );
imshow ( log ( 1 + abs ( F_I )),[ ]);
xlabel ( 'b).Fourier spectrum of a).' );
%% ------motion blur------------------
H = zeros ( P , Q );
a = 0.02 ;
b = 0.02 ;
T = 1 ;
for x = ( - P / 2 ): 1 :( P / 2 ) - 1
for y = ( - Q / 2 ): 1 :( Q / 2 ) - 1
R = ( x * a + y * b ) * pi ;
if ( R == 0 )
H ( x + ( P / 2 ) + 1 , y + ( Q / 2 ) + 1 ) = T ;
else H ( x + ( P / 2 ) + 1 , y + ( Q / 2 ) + 1 ) = ( T / R ) * ( sin ( R )) * exp ( - 1 i * R );
end
end
end
%% ------the atmospheric turbulence modle------------------
H_1 = zeros ( P , Q );
k = 0.0025 ;
for x = ( - P / 2 ): 1 :( P / 2 ) - 1
for y = ( - Q / 2 ): 1 :( Q / 2 ) - 1
D = ( x^ 2 + y^ 2 )^ ( 5 / 6 );
D_0 = 60 ;
H_1 ( x + ( P / 2 ) + 1 , y + ( Q / 2 ) + 1 ) = exp ( - k * D );
end
end
%% -----------noise------------------
a = 0 ;
b = 0.2 ;
n_gaussian = a + b .* randn ( M , N );
Noise = fft2 ( n_gaussian , P , Q );
figure ();
subplot ( 1 , 2 , 1 );
imshow ( n_gaussian ,[ - 1 1 ]);
xlabel ( 'a).Gaussian noise' );
subplot ( 1 , 2 , 2 );
imshow ( log ( 1 + abs ( Noise )),[ ]);
xlabel ( 'b).Fourier spectrum of a).' );
%%
G = H .* F_I + Noise ;
% G = H_1 .* F_I + Noise;
gc = ifft2 ( G );
gc = gc ( 1 : 1 : M + 27 , 1 : 1 : N + 27 );
for x = 1 : 1 :( M + 27 )
for y = 1 : 1 :( N + 27 )
g ( x , y ) = gc ( x , y ) .* ( - 1 )^ ( x + y );
end
end
gc = gc ( 1 : 1 : M , 1 : 1 : N );
for x = 1 : 1 :( M )
for y = 1 : 1 :( N )
g ( x , y ) = gc ( x , y ) .* ( - 1 )^ ( x + y );
end
end
figure ();
subplot ( 1 , 2 , 1 );
imshow ( f ,[ 0 1 ]);
xlabel ( 'a).Original Image' );
subplot ( 1 , 2 , 2 );
imshow ( log ( 1 + abs ( F_I )),[ ]);
xlabel ( 'b).Fourier spectrum of a).' );
figure ();
subplot ( 1 , 2 , 1 );
imshow ( abs ( H ),[ ]);
xlabel ( 'c).The motion modle H(u,v)(a=0.02,b=0.02,T=1)' );
subplot ( 1 , 2 , 2 );
n = 1 : 1 : P ;
plot ( n , abs ( H ( 400 ,:)));
axis ([ 0 P 0 1 ]); grid ;
xlabel ( 'H(n,400)' );
ylabel ( '|H(u,v)|' );
figure ();
subplot ( 1 , 2 , 1 );
imshow ( real ( g ),[ 0 1 ]);
xlabel ( 'd).Result image' );
subplot ( 1 , 2 , 2 );
imshow ( log ( 1 + abs ( G )),[ ]);
xlabel ( 'e).Fourier spectrum of d). ' );
%% --------------inverse_filtering---------------------
%F = G ./ H;
%F = G ./ H_1;
for x = ( - P / 2 ): 1 :( P / 2 ) - 1
for y = ( - Q / 2 ): 1 :( Q / 2 ) - 1
D = ( x^ 2 + y^ 2 )^ ( 0.5 );
if ( D < 258 )
F ( x + ( P / 2 ) + 1 , y + ( Q / 2 ) + 1 ) = G ( x + ( P / 2 ) + 1 , y + ( Q / 2 ) + 1 ) ./ H_1 ( x + ( P / 2 ) + 1 , y + ( Q / 2 ) + 1 );
% no noise D < 188
% noise D < 56
else F ( x + ( P / 2 ) + 1 , y + ( Q / 2 ) + 1 ) = G ( x + ( P / 2 ) + 1 , y + ( Q / 2 ) + 1 );
end
end
end
% Butterworth_Lowpass_Filters
H_B = zeros ( P , Q );
D_0 = 70 ;
for x = ( - P / 2 ): 1 :( P / 2 ) - 1
for y = ( - Q / 2 ): 1 :( Q / 2 ) - 1
D = ( x^ 2 + y^ 2 )^ ( 0.5 );
%if(D < 200) H_B(x+(P/2)+1,y+(Q/2)+1) = 1/(1+(D/D_0)^100);end
H_B ( x + ( P / 2 ) + 1 , y + ( Q / 2 ) + 1 ) = 1 / ( 1 + ( D / D_0 )^ 20 );
end
end
F = F .* H_B ;
f = real ( ifft2 ( F ));
f = f ( 1 : 1 : M , 1 : 1 : N );
for x = 1 : 1 :( M )
for y = 1 : 1 :( N )
f ( x , y ) = f ( x , y ) * ( - 1 )^ ( x + y );
end
end
%% ------show Result------------------
figure ();
subplot ( 1 , 2 , 1 );
imshow ( f ,[ 0 1 ]);
xlabel ( 'a).Result image' );
subplot ( 1 , 2 , 2 );
imshow ( log ( 1 + abs ( F )),[ ]);
xlabel ( 'b).Fourier spectrum of a).' );
figure ();
n = 1 : 1 : P ;
plot ( n , abs ( F ( 400 ,:)), 'r-' , n , abs ( F ( 400 ,:)), 'b-' );
axis ([ 0 P 0 1000 ]); grid ;
xlabel ( 'Number of rows(400th column)' );
ylabel ( 'Fourier amplitude spectrum' );
legend ( 'F_{limit}(u,v)' , 'F(u,v)' );
figure ();
n = 1 : 1 : P ;
plot ( n , abs ( H ( 400 ,:)), 'g-' );
axis ([ 0 P 0 1 ]); grid ;
xlabel ( 'H''_{s}(n,400)' );
ylabel ( '|H''_{s}(u,v)|' );
%% ----------Wiener filters-----------
% K = 0.000014;
K = 0.02 ;
%H_Wiener = ((abs(H_1).^2)./((abs(H_1).^2)+K)).*(1./H_1);
H_Wiener = (( abs ( H ) .^ 2 ) ./ (( abs ( H ) .^ 2 ) + K )) .* ( 1. / H );
F_Wiener = H_Wiener .* G ;
f_Wiener = real ( ifft2 ( F_Wiener ));
f_Wiener = f_Wiener ( 1 : 1 : M , 1 : 1 : N );
for x = 1 : 1 :( M )
for y = 1 : 1 :( N )
f_Wiener ( x , y ) = f_Wiener ( x , y ) * ( - 1 )^ ( x + y );
end
end
[ SSIM_Wiener mssim ] = ssim_index ( f_Wiener , f_original ,[ 0.01 0.03 ], ones ( 8 ), 1 );
SSIM_Wiener
%% ------show Result------------------
figure ();
subplot ( 1 , 2 , 1 );
%imshow(f_Wiener(1:128,1:128),[0 1]);
imshow ( f_Wiener ,[ 0 1 ]);
xlabel ( 'd).Result image by Wiener filter' );
subplot ( 1 , 2 , 2 );
imshow ( log ( 1 + abs ( F_Wiener )),[ ]);
xlabel ( 'c).Fourier spectrum of c).' );
% subplot(1,2,2);
% %imshow(f(1:128,1:128),[0 1]);
% imshow(f,[0 1]);
% xlabel('e).Result image by inverse filter');
figure ();
n = 1 : 1 : P ;
plot ( n , abs ( F ( 400 ,:)), 'r-' , n , abs ( F_Wiener ( 400 ,:)), 'b-' );
axis ([ 0 P 0 500 ]); grid ;
xlabel ( 'Number of rows(400th column)' );
ylabel ( 'Fourier amplitude spectrum' );
legend ( 'F(u,v)' , 'F_{Wiener}(u,v)' );
figure ();
subplot ( 1 , 2 , 1 );
imshow ( log ( 1 + abs ( H_Wiener )),[ ]);
xlabel ( 'a).F_{Wiener}(u,v).' );
subplot ( 1 , 2 , 2 );
n = 1 : 1 : P ;
plot ( n , abs ( H_Wiener ( 400 ,:)));
axis ([ 0 P 0 80 ]); grid ;
xlabel ( 'Number of rows(400th column)' );
ylabel ( 'Amplitude spectrum' );
%% ------------Constrained_least_squares_filtering---------
p_laplacian = zeros ( M , N );
Laplacian = [ 0 - 1 0 ;
- 1 4 - 1 ;
0 - 1 0 ];
p_laplacian ( 1 : 3 , 1 : 3 ) = Laplacian ;
P = 2 * M ;
Q = 2 * N ;
for x = 1 : 1 : M
for y = 1 : 1 : N
p_laplacian ( x , y ) = p_laplacian ( x , y ) * ( - 1 )^ ( x + y );
end
end
P_laplacian = fft2 ( p_laplacian , P , Q );
F_C = zeros ( P , Q );
r = 0.2 ;
H_clsf = (( H ' ) ./ (( abs ( H ) .^ 2 ) + r .* P_laplacian ));
F_C = H_clsf .* G ;
f_c = real ( ifft2 ( F_C ));
f_c = f_c ( 1 : 1 : M , 1 : 1 : N );
for x = 1 : 1 :( M )
for y = 1 : 1 :( N )
f_c ( x , y ) = f_c ( x , y ) * ( - 1 )^ ( x + y );
end
end
%%
figure ();
subplot ( 1 , 2 , 1 );
imshow ( f_c ,[ 0 1 ]);
xlabel ( 'e).Result image by constrained least squares filter (r = 0.2)' );
subplot ( 1 , 2 , 2 );
imshow ( log ( 1 + abs ( F_C )),[ ]);
xlabel ( 'f).Fourier spectrum of c).' );
[ SSIM_CLSF mssim ] = ssim_index ( f_c , f_original ,[ 0.01 0.03 ], ones ( 8 ), 1 );
figure ();
subplot ( 1 , 2 , 1 );
imshow ( log ( 1 + abs ( H_clsf )),[ ]);
xlabel ( 'a).F_{clsf}(u,v).' );
subplot ( 1 , 2 , 2 );
n = 1 : 1 : P ;
plot ( n , abs ( H_clsf ( 400 ,:)));
axis ([ 0 P 0 80 ]); grid ;
xlabel ( 'Number of rows(400th column)' );
ylabel ( 'Amplitude spectrum' );
  • 9
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值