您的位置:首页 > 其它

使用方向梯度直方图估计图像旋转角度

2015-04-29 16:36 696 查看
下面的代码通过计算图像中给定区域的方向梯度直方图来估计图像的旋转角度

主要内容包括:

一、计算局部图像块方向梯度直方图的函数

二、把给定图像按照给定的角度旋转

三、如何利用旋转后的图像的方向梯度直方图和原图像的方向梯度直方图来估计旋转角度

四、绘制方向梯度直方图

计算效果如下次:



主要代码如下:

<a target=_blank id="L1" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;">   1</a>
<a target=_blank id="L2" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;">   2</a>
<a target=_blank id="L3" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;">   3</a>
<a target=_blank id="L4" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;">   4</a>
<a target=_blank id="L5" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;">   5</a>
<a target=_blank id="L6" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L6" rel="#L6" style="color: rgb(102, 102, 102); text-decoration: none;">   6</a>
<a target=_blank id="L7" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L7" rel="#L7" style="color: rgb(102, 102, 102); text-decoration: none;">   7</a>
<a target=_blank id="L8" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L8" rel="#L8" style="color: rgb(102, 102, 102); text-decoration: none;">   8</a>
<a target=_blank id="L9" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L9" rel="#L9" style="color: rgb(102, 102, 102); text-decoration: none;">   9</a>
<a target=_blank id="L10" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L10" rel="#L10" style="color: rgb(102, 102, 102); text-decoration: none;">  10</a>
<a target=_blank id="L11" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L11" rel="#L11" style="color: rgb(102, 102, 102); text-decoration: none;">  11</a>
<a target=_blank id="L12" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L12" rel="#L12" style="color: rgb(102, 102, 102); text-decoration: none;">  12</a>
<a target=_blank id="L13" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L13" rel="#L13" style="color: rgb(102, 102, 102); text-decoration: none;">  13</a>
<a target=_blank id="L14" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L14" rel="#L14" style="color: rgb(102, 102, 102); text-decoration: none;">  14</a>
<a target=_blank id="L15" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L15" rel="#L15" style="color: rgb(102, 102, 102); text-decoration: none;">  15</a>
<a target=_blank id="L16" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L16" rel="#L16" style="color: rgb(102, 102, 102); text-decoration: none;">  16</a>
<a target=_blank id="L17" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L17" rel="#L17" style="color: rgb(102, 102, 102); text-decoration: none;">  17</a>
<a target=_blank id="L18" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L18" rel="#L18" style="color: rgb(102, 102, 102); text-decoration: none;">  18</a>
<a target=_blank id="L19" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L19" rel="#L19" style="color: rgb(102, 102, 102); text-decoration: none;">  19</a>
<a target=_blank id="L20" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L20" rel="#L20" style="color: rgb(102, 102, 102); text-decoration: none;">  20</a>
<a target=_blank id="L21" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L21" rel="#L21" style="color: rgb(102, 102, 102); text-decoration: none;">  21</a>
<a target=_blank id="L22" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L22" rel="#L22" style="color: rgb(102, 102, 102); text-decoration: none;">  22</a>
<a target=_blank id="L23" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L23" rel="#L23" style="color: rgb(102, 102, 102); text-decoration: none;">  23</a>
<a target=_blank id="L24" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L24" rel="#L24" style="color: rgb(102, 102, 102); text-decoration: none;">  24</a>
<a target=_blank id="L25" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L25" rel="#L25" style="color: rgb(102, 102, 102); text-decoration: none;">  25</a>
<a target=_blank id="L26" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L26" rel="#L26" style="color: rgb(102, 102, 102); text-decoration: none;">  26</a>
<a target=_blank id="L27" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L27" rel="#L27" style="color: rgb(102, 102, 102); text-decoration: none;">  27</a>
<a target=_blank id="L28" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L28" rel="#L28" style="color: rgb(102, 102, 102); text-decoration: none;">  28</a>
<a target=_blank id="L29" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L29" rel="#L29" style="color: rgb(102, 102, 102); text-decoration: none;">  29</a>
<a target=_blank id="L30" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L30" rel="#L30" style="color: rgb(102, 102, 102); text-decoration: none;">  30</a>
<a target=_blank id="L31" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L31" rel="#L31" style="color: rgb(102, 102, 102); text-decoration: none;">  31</a>
<a target=_blank id="L32" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L32" rel="#L32" style="color: rgb(102, 102, 102); text-decoration: none;">  32</a>
<a target=_blank id="L33" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L33" rel="#L33" style="color: rgb(102, 102, 102); text-decoration: none;">  33</a>
<a target=_blank id="L34" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L34" rel="#L34" style="color: rgb(102, 102, 102); text-decoration: none;">  34</a>
<a target=_blank id="L35" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L35" rel="#L35" style="color: rgb(102, 102, 102); text-decoration: none;">  35</a>
<a target=_blank id="L36" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L36" rel="#L36" style="color: rgb(102, 102, 102); text-decoration: none;">  36</a>
<a target=_blank id="L37" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L37" rel="#L37" style="color: rgb(102, 102, 102); text-decoration: none;">  37</a>
<a target=_blank id="L38" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L38" rel="#L38" style="color: rgb(102, 102, 102); text-decoration: none;">  38</a>
<a target=_blank id="L39" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L39" rel="#L39" style="color: rgb(102, 102, 102); text-decoration: none;">  39</a>
<a target=_blank id="L40" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L40" rel="#L40" style="color: rgb(102, 102, 102); text-decoration: none;">  40</a>
<a target=_blank id="L41" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L41" rel="#L41" style="color: rgb(102, 102, 102); text-decoration: none;">  41</a>
<a target=_blank id="L42" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L42" rel="#L42" style="color: rgb(102, 102, 102); text-decoration: none;">  42</a>
<a target=_blank id="L43" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L43" rel="#L43" style="color: rgb(102, 102, 102); text-decoration: none;">  43</a>
<a target=_blank id="L44" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L44" rel="#L44" style="color: rgb(102, 102, 102); text-decoration: none;">  44</a>
<a target=_blank id="L45" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L45" rel="#L45" style="color: rgb(102, 102, 102); text-decoration: none;">  45</a>
<a target=_blank id="L46" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L46" rel="#L46" style="color: rgb(102, 102, 102); text-decoration: none;">  46</a>
<a target=_blank id="L47" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L47" rel="#L47" style="color: rgb(102, 102, 102); text-decoration: none;">  47</a>
<a target=_blank id="L48" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L48" rel="#L48" style="color: rgb(102, 102, 102); text-decoration: none;">  48</a>
<a target=_blank id="L49" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L49" rel="#L49" style="color: rgb(102, 102, 102); text-decoration: none;">  49</a>
<a target=_blank id="L50" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L50" rel="#L50" style="color: rgb(102, 102, 102); text-decoration: none;">  50</a>
<a target=_blank id="L51" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L51" rel="#L51" style="color: rgb(102, 102, 102); text-decoration: none;">  51</a>
<a target=_blank id="L52" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L52" rel="#L52" style="color: rgb(102, 102, 102); text-decoration: none;">  52</a>
<a target=_blank id="L53" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L53" rel="#L53" style="color: rgb(102, 102, 102); text-decoration: none;">  53</a>
<a target=_blank id="L54" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L54" rel="#L54" style="color: rgb(102, 102, 102); text-decoration: none;">  54</a>
<a target=_blank id="L55" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L55" rel="#L55" style="color: rgb(102, 102, 102); text-decoration: none;">  55</a>
<a target=_blank id="L56" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L56" rel="#L56" style="color: rgb(102, 102, 102); text-decoration: none;">  56</a>
<a target=_blank id="L57" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L57" rel="#L57" style="color: rgb(102, 102, 102); text-decoration: none;">  57</a>
<a target=_blank id="L58" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L58" rel="#L58" style="color: rgb(102, 102, 102); text-decoration: none;">  58</a>
<a target=_blank id="L59" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L59" rel="#L59" style="color: rgb(102, 102, 102); text-decoration: none;">  59</a>
<a target=_blank id="L60" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L60" rel="#L60" style="color: rgb(102, 102, 102); text-decoration: none;">  60</a>
<a target=_blank id="L61" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L61" rel="#L61" style="color: rgb(102, 102, 102); text-decoration: none;">  61</a>
<a target=_blank id="L62" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L62" rel="#L62" style="color: rgb(102, 102, 102); text-decoration: none;">  62</a>
<a target=_blank id="L63" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L63" rel="#L63" style="color: rgb(102, 102, 102); text-decoration: none;">  63</a>
<a target=_blank id="L64" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L64" rel="#L64" style="color: rgb(102, 102, 102); text-decoration: none;">  64</a>
<a target=_blank id="L65" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L65" rel="#L65" style="color: rgb(102, 102, 102); text-decoration: none;">  65</a>
<a target=_blank id="L66" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L66" rel="#L66" style="color: rgb(102, 102, 102); text-decoration: none;">  66</a>
<a target=_blank id="L67" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L67" rel="#L67" style="color: rgb(102, 102, 102); text-decoration: none;">  67</a>
<a target=_blank id="L68" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L68" rel="#L68" style="color: rgb(102, 102, 102); text-decoration: none;">  68</a>
<a target=_blank id="L69" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L69" rel="#L69" style="color: rgb(102, 102, 102); text-decoration: none;">  69</a>
<a target=_blank id="L70" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L70" rel="#L70" style="color: rgb(102, 102, 102); text-decoration: none;">  70</a>
<a target=_blank id="L71" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L71" rel="#L71" style="color: rgb(102, 102, 102); text-decoration: none;">  71</a>
<a target=_blank id="L72" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L72" rel="#L72" style="color: rgb(102, 102, 102); text-decoration: none;">  72</a>
<a target=_blank id="L73" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L73" rel="#L73" style="color: rgb(102, 102, 102); text-decoration: none;">  73</a>
<a target=_blank id="L74" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L74" rel="#L74" style="color: rgb(102, 102, 102); text-decoration: none;">  74</a>
<a target=_blank id="L75" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L75" rel="#L75" style="color: rgb(102, 102, 102); text-decoration: none;">  75</a>
<a target=_blank id="L76" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L76" rel="#L76" style="color: rgb(102, 102, 102); text-decoration: none;">  76</a>
<a target=_blank id="L77" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L77" rel="#L77" style="color: rgb(102, 102, 102); text-decoration: none;">  77</a>
<a target=_blank id="L78" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L78" rel="#L78" style="color: rgb(102, 102, 102); text-decoration: none;">  78</a>
<a target=_blank id="L79" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L79" rel="#L79" style="color: rgb(102, 102, 102); text-decoration: none;">  79</a>
<a target=_blank id="L80" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L80" rel="#L80" style="color: rgb(102, 102, 102); text-decoration: none;">  80</a>
<a target=_blank id="L81" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L81" rel="#L81" style="color: rgb(102, 102, 102); text-decoration: none;">  81</a>
<a target=_blank id="L82" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L82" rel="#L82" style="color: rgb(102, 102, 102); text-decoration: none;">  82</a>
<a target=_blank id="L83" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L83" rel="#L83" style="color: rgb(102, 102, 102); text-decoration: none;">  83</a>
<a target=_blank id="L84" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L84" rel="#L84" style="color: rgb(102, 102, 102); text-decoration: none;">  84</a>
<a target=_blank id="L85" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L85" rel="#L85" style="color: rgb(102, 102, 102); text-decoration: none;">  85</a>
<a target=_blank id="L86" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L86" rel="#L86" style="color: rgb(102, 102, 102); text-decoration: none;">  86</a>
<a target=_blank id="L87" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L87" rel="#L87" style="color: rgb(102, 102, 102); text-decoration: none;">  87</a>
<a target=_blank id="L88" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L88" rel="#L88" style="color: rgb(102, 102, 102); text-decoration: none;">  88</a>
<a target=_blank id="L89" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L89" rel="#L89" style="color: rgb(102, 102, 102); text-decoration: none;">  89</a>
<a target=_blank id="L90" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L90" rel="#L90" style="color: rgb(102, 102, 102); text-decoration: none;">  90</a>
<a target=_blank id="L91" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L91" rel="#L91" style="color: rgb(102, 102, 102); text-decoration: none;">  91</a>
<a target=_blank id="L92" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L92" rel="#L92" style="color: rgb(102, 102, 102); text-decoration: none;">  92</a>
<a target=_blank id="L93" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L93" rel="#L93" style="color: rgb(102, 102, 102); text-decoration: none;">  93</a>
<a target=_blank id="L94" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L94" rel="#L94" style="color: rgb(102, 102, 102); text-decoration: none;">  94</a>
<a target=_blank id="L95" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L95" rel="#L95" style="color: rgb(102, 102, 102); text-decoration: none;">  95</a>
<a target=_blank id="L96" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L96" rel="#L96" style="color: rgb(102, 102, 102); text-decoration: none;">  96</a>
<a target=_blank id="L97" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L97" rel="#L97" style="color: rgb(102, 102, 102); text-decoration: none;">  97</a>
<a target=_blank id="L98" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L98" rel="#L98" style="color: rgb(102, 102, 102); text-decoration: none;">  98</a>
<a target=_blank id="L99" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L99" rel="#L99" style="color: rgb(102, 102, 102); text-decoration: none;">  99</a>
<a target=_blank id="L100" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L100" rel="#L100" style="color: rgb(102, 102, 102); text-decoration: none;"> 100</a>
<a target=_blank id="L101" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L101" rel="#L101" style="color: rgb(102, 102, 102); text-decoration: none;"> 101</a>
<a target=_blank id="L102" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L102" rel="#L102" style="color: rgb(102, 102, 102); text-decoration: none;"> 102</a>
<a target=_blank id="L103" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L103" rel="#L103" style="color: rgb(102, 102, 102); text-decoration: none;"> 103</a>
<a target=_blank id="L104" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L104" rel="#L104" style="color: rgb(102, 102, 102); text-decoration: none;"> 104</a>
<a target=_blank id="L105" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L105" rel="#L105" style="color: rgb(102, 102, 102); text-decoration: none;"> 105</a>
<a target=_blank id="L106" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L106" rel="#L106" style="color: rgb(102, 102, 102); text-decoration: none;"> 106</a>
<a target=_blank id="L107" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L107" rel="#L107" style="color: rgb(102, 102, 102); text-decoration: none;"> 107</a>
<a target=_blank id="L108" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L108" rel="#L108" style="color: rgb(102, 102, 102); text-decoration: none;"> 108</a>
<a target=_blank id="L109" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L109" rel="#L109" style="color: rgb(102, 102, 102); text-decoration: none;"> 109</a>
<a target=_blank id="L110" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L110" rel="#L110" style="color: rgb(102, 102, 102); text-decoration: none;"> 110</a>
<a target=_blank id="L111" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L111" rel="#L111" style="color: rgb(102, 102, 102); text-decoration: none;"> 111</a>
<a target=_blank id="L112" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L112" rel="#L112" style="color: rgb(102, 102, 102); text-decoration: none;"> 112</a>
<a target=_blank id="L113" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L113" rel="#L113" style="color: rgb(102, 102, 102); text-decoration: none;"> 113</a>
<a target=_blank id="L114" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L114" rel="#L114" style="color: rgb(102, 102, 102); text-decoration: none;"> 114</a>
<a target=_blank id="L115" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L115" rel="#L115" style="color: rgb(102, 102, 102); text-decoration: none;"> 115</a>
<a target=_blank id="L116" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L116" rel="#L116" style="color: rgb(102, 102, 102); text-decoration: none;"> 116</a>
<a target=_blank id="L117" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L117" rel="#L117" style="color: rgb(102, 102, 102); text-decoration: none;"> 117</a>
<a target=_blank id="L118" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L118" rel="#L118" style="color: rgb(102, 102, 102); text-decoration: none;"> 118</a>
<a target=_blank id="L119" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L119" rel="#L119" style="color: rgb(102, 102, 102); text-decoration: none;"> 119</a>
<a target=_blank id="L120" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L120" rel="#L120" style="color: rgb(102, 102, 102); text-decoration: none;"> 120</a>
<a target=_blank id="L121" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L121" rel="#L121" style="color: rgb(102, 102, 102); text-decoration: none;"> 121</a>
<a target=_blank id="L122" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L122" rel="#L122" style="color: rgb(102, 102, 102); text-decoration: none;"> 122</a>
<a target=_blank id="L123" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L123" rel="#L123" style="color: rgb(102, 102, 102); text-decoration: none;"> 123</a>
<a target=_blank id="L124" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L124" rel="#L124" style="color: rgb(102, 102, 102); text-decoration: none;"> 124</a>
<a target=_blank id="L125" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L125" rel="#L125" style="color: rgb(102, 102, 102); text-decoration: none;"> 125</a>
<a target=_blank id="L126" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L126" rel="#L126" style="color: rgb(102, 102, 102); text-decoration: none;"> 126</a>
<a target=_blank id="L127" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L127" rel="#L127" style="color: rgb(102, 102, 102); text-decoration: none;"> 127</a>
<a target=_blank id="L128" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L128" rel="#L128" style="color: rgb(102, 102, 102); text-decoration: none;"> 128</a>
<a target=_blank id="L129" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L129" rel="#L129" style="color: rgb(102, 102, 102); text-decoration: none;"> 129</a>
<a target=_blank id="L130" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L130" rel="#L130" style="color: rgb(102, 102, 102); text-decoration: none;"> 130</a>
<a target=_blank id="L131" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L131" rel="#L131" style="color: rgb(102, 102, 102); text-decoration: none;"> 131</a>
<a target=_blank id="L132" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L132" rel="#L132" style="color: rgb(102, 102, 102); text-decoration: none;"> 132</a>
<a target=_blank id="L133" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L133" rel="#L133" style="color: rgb(102, 102, 102); text-decoration: none;"> 133</a>
<a target=_blank id="L134" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L134" rel="#L134" style="color: rgb(102, 102, 102); text-decoration: none;"> 134</a>
<a target=_blank id="L135" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L135" rel="#L135" style="color: rgb(102, 102, 102); text-decoration: none;"> 135</a>
<a target=_blank id="L136" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L136" rel="#L136" style="color: rgb(102, 102, 102); text-decoration: none;"> 136</a>
<a target=_blank id="L137" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L137" rel="#L137" style="color: rgb(102, 102, 102); text-decoration: none;"> 137</a>
<a target=_blank id="L138" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L138" rel="#L138" style="color: rgb(102, 102, 102); text-decoration: none;"> 138</a>
<a target=_blank id="L139" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L139" rel="#L139" style="color: rgb(102, 102, 102); text-decoration: none;"> 139</a>
<a target=_blank id="L140" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L140" rel="#L140" style="color: rgb(102, 102, 102); text-decoration: none;"> 140</a>
<a target=_blank id="L141" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L141" rel="#L141" style="color: rgb(102, 102, 102); text-decoration: none;"> 141</a>
<a target=_blank id="L142" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L142" rel="#L142" style="color: rgb(102, 102, 102); text-decoration: none;"> 142</a>
<a target=_blank id="L143" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L143" rel="#L143" style="color: rgb(102, 102, 102); text-decoration: none;"> 143</a>
<a target=_blank id="L144" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L144" rel="#L144" style="color: rgb(102, 102, 102); text-decoration: none;"> 144</a>
<a target=_blank id="L145" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L145" rel="#L145" style="color: rgb(102, 102, 102); text-decoration: none;"> 145</a>
<a target=_blank id="L146" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L146" rel="#L146" style="color: rgb(102, 102, 102); text-decoration: none;"> 146</a>
<a target=_blank id="L147" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L147" rel="#L147" style="color: rgb(102, 102, 102); text-decoration: none;"> 147</a>
<a target=_blank id="L148" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L148" rel="#L148" style="color: rgb(102, 102, 102); text-decoration: none;"> 148</a>
<a target=_blank id="L149" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L149" rel="#L149" style="color: rgb(102, 102, 102); text-decoration: none;"> 149</a>
<a target=_blank id="L150" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L150" rel="#L150" style="color: rgb(102, 102, 102); text-decoration: none;"> 150</a>
<a target=_blank id="L151" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L151" rel="#L151" style="color: rgb(102, 102, 102); text-decoration: none;"> 151</a>
<a target=_blank id="L152" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L152" rel="#L152" style="color: rgb(102, 102, 102); text-decoration: none;"> 152</a>
<a target=_blank id="L153" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L153" rel="#L153" style="color: rgb(102, 102, 102); text-decoration: none;"> 153</a>
<a target=_blank id="L154" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L154" rel="#L154" style="color: rgb(102, 102, 102); text-decoration: none;"> 154</a>
<a target=_blank id="L155" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L155" rel="#L155" style="color: rgb(102, 102, 102); text-decoration: none;"> 155</a>
<a target=_blank id="L156" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L156" rel="#L156" style="color: rgb(102, 102, 102); text-decoration: none;"> 156</a>
<a target=_blank id="L157" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L157" rel="#L157" style="color: rgb(102, 102, 102); text-decoration: none;"> 157</a>
<a target=_blank id="L158" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L158" rel="#L158" style="color: rgb(102, 102, 102); text-decoration: none;"> 158</a>
<a target=_blank id="L159" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L159" rel="#L159" style="color: rgb(102, 102, 102); text-decoration: none;"> 159</a>
<a target=_blank id="L160" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L160" rel="#L160" style="color: rgb(102, 102, 102); text-decoration: none;"> 160</a>
<a target=_blank id="L161" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L161" rel="#L161" style="color: rgb(102, 102, 102); text-decoration: none;"> 161</a>
<a target=_blank id="L162" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L162" rel="#L162" style="color: rgb(102, 102, 102); text-decoration: none;"> 162</a>
<a target=_blank id="L163" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L163" rel="#L163" style="color: rgb(102, 102, 102); text-decoration: none;"> 163</a>
<a target=_blank id="L164" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L164" rel="#L164" style="color: rgb(102, 102, 102); text-decoration: none;"> 164</a>
<a target=_blank id="L165" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L165" rel="#L165" style="color: rgb(102, 102, 102); text-decoration: none;"> 165</a>
<a target=_blank id="L166" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L166" rel="#L166" style="color: rgb(102, 102, 102); text-decoration: none;"> 166</a>
<a target=_blank id="L167" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L167" rel="#L167" style="color: rgb(102, 102, 102); text-decoration: none;"> 167</a>
<a target=_blank id="L168" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L168" rel="#L168" style="color: rgb(102, 102, 102); text-decoration: none;"> 168</a>
<a target=_blank id="L169" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L169" rel="#L169" style="color: rgb(102, 102, 102); text-decoration: none;"> 169</a>
<a target=_blank id="L170" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L170" rel="#L170" style="color: rgb(102, 102, 102); text-decoration: none;"> 170</a>
<a target=_blank id="L171" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L171" rel="#L171" style="color: rgb(102, 102, 102); text-decoration: none;"> 171</a>
<a target=_blank id="L172" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L172" rel="#L172" style="color: rgb(102, 102, 102); text-decoration: none;"> 172</a>
<a target=_blank id="L173" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L173" rel="#L173" style="color: rgb(102, 102, 102); text-decoration: none;"> 173</a>
<a target=_blank id="L174" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L174" rel="#L174" style="color: rgb(102, 102, 102); text-decoration: none;"> 174</a>
<a target=_blank id="L175" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L175" rel="#L175" style="color: rgb(102, 102, 102); text-decoration: none;"> 175</a>
<a target=_blank id="L176" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L176" rel="#L176" style="color: rgb(102, 102, 102); text-decoration: none;"> 176</a>
<a target=_blank id="L177" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L177" rel="#L177" style="color: rgb(102, 102, 102); text-decoration: none;"> 177</a>
<a target=_blank id="L178" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L178" rel="#L178" style="color: rgb(102, 102, 102); text-decoration: none;"> 178</a>
<a target=_blank id="L179" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L179" rel="#L179" style="color: rgb(102, 102, 102); text-decoration: none;"> 179</a>
<a target=_blank id="L180" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L180" rel="#L180" style="color: rgb(102, 102, 102); text-decoration: none;"> 180</a>
<a target=_blank id="L181" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L181" rel="#L181" style="color: rgb(102, 102, 102); text-decoration: none;"> 181</a>
<a target=_blank id="L182" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L182" rel="#L182" style="color: rgb(102, 102, 102); text-decoration: none;"> 182</a>
<a target=_blank id="L183" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L183" rel="#L183" style="color: rgb(102, 102, 102); text-decoration: none;"> 183</a>
<a target=_blank id="L184" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L184" rel="#L184" style="color: rgb(102, 102, 102); text-decoration: none;"> 184</a>
<a target=_blank id="L185" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L185" rel="#L185" style="color: rgb(102, 102, 102); text-decoration: none;"> 185</a>
<a target=_blank id="L186" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L186" rel="#L186" style="color: rgb(102, 102, 102); text-decoration: none;"> 186</a>
<a target=_blank id="L187" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L187" rel="#L187" style="color: rgb(102, 102, 102); text-decoration: none;"> 187</a>
<a target=_blank id="L188" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L188" rel="#L188" style="color: rgb(102, 102, 102); text-decoration: none;"> 188</a>
<a target=_blank id="L189" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L189" rel="#L189" style="color: rgb(102, 102, 102); text-decoration: none;"> 189</a>
<a target=_blank id="L190" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L190" rel="#L190" style="color: rgb(102, 102, 102); text-decoration: none;"> 190</a>
<a target=_blank id="L191" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L191" rel="#L191" style="color: rgb(102, 102, 102); text-decoration: none;"> 191</a>
<a target=_blank id="L192" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L192" rel="#L192" style="color: rgb(102, 102, 102); text-decoration: none;"> 192</a>
<a target=_blank id="L193" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L193" rel="#L193" style="color: rgb(102, 102, 102); text-decoration: none;"> 193</a>
<a target=_blank id="L194" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L194" rel="#L194" style="color: rgb(102, 102, 102); text-decoration: none;"> 194</a>
<a target=_blank id="L195" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L195" rel="#L195" style="color: rgb(102, 102, 102); text-decoration: none;"> 195</a>
<a target=_blank id="L196" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L196" rel="#L196" style="color: rgb(102, 102, 102); text-decoration: none;"> 196</a>
<a target=_blank id="L197" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L197" rel="#L197" style="color: rgb(102, 102, 102); text-decoration: none;"> 197</a>
<a target=_blank id="L198" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L198" rel="#L198" style="color: rgb(102, 102, 102); text-decoration: none;"> 198</a>
<a target=_blank id="L199" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L199" rel="#L199" style="color: rgb(102, 102, 102); text-decoration: none;"> 199</a>
<a target=_blank id="L200" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L200" rel="#L200" style="color: rgb(102, 102, 102); text-decoration: none;"> 200</a>
<a target=_blank id="L201" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L201" rel="#L201" style="color: rgb(102, 102, 102); text-decoration: none;"> 201</a>
<a target=_blank id="L202" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L202" rel="#L202" style="color: rgb(102, 102, 102); text-decoration: none;"> 202</a>
<a target=_blank id="L203" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L203" rel="#L203" style="color: rgb(102, 102, 102); text-decoration: none;"> 203</a>
<a target=_blank id="L204" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L204" rel="#L204" style="color: rgb(102, 102, 102); text-decoration: none;"> 204</a>
<a target=_blank id="L205" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L205" rel="#L205" style="color: rgb(102, 102, 102); text-decoration: none;"> 205</a>
<a target=_blank id="L206" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L206" rel="#L206" style="color: rgb(102, 102, 102); text-decoration: none;"> 206</a>
<a target=_blank id="L207" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L207" rel="#L207" style="color: rgb(102, 102, 102); text-decoration: none;"> 207</a>
<a target=_blank id="L208" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L208" rel="#L208" style="color: rgb(102, 102, 102); text-decoration: none;"> 208</a>
<a target=_blank id="L209" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L209" rel="#L209" style="color: rgb(102, 102, 102); text-decoration: none;"> 209</a>
<a target=_blank id="L210" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L210" rel="#L210" style="color: rgb(102, 102, 102); text-decoration: none;"> 210</a>
<a target=_blank id="L211" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L211" rel="#L211" style="color: rgb(102, 102, 102); text-decoration: none;"> 211</a>
<a target=_blank id="L212" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L212" rel="#L212" style="color: rgb(102, 102, 102); text-decoration: none;"> 212</a>
<a target=_blank id="L213" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L213" rel="#L213" style="color: rgb(102, 102, 102); text-decoration: none;"> 213</a>
<a target=_blank id="L214" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L214" rel="#L214" style="color: rgb(102, 102, 102); text-decoration: none;"> 214</a>
<a target=_blank id="L215" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L215" rel="#L215" style="color: rgb(102, 102, 102); text-decoration: none;"> 215</a>
<a target=_blank id="L216" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L216" rel="#L216" style="color: rgb(102, 102, 102); text-decoration: none;"> 216</a>
<a target=_blank id="L217" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L217" rel="#L217" style="color: rgb(102, 102, 102); text-decoration: none;"> 217</a>
<a target=_blank id="L218" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L218" rel="#L218" style="color: rgb(102, 102, 102); text-decoration: none;"> 218</a>
<a target=_blank id="L219" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L219" rel="#L219" style="color: rgb(102, 102, 102); text-decoration: none;"> 219</a>
<a target=_blank id="L220" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L220" rel="#L220" style="color: rgb(102, 102, 102); text-decoration: none;"> 220</a>
<a target=_blank id="L221" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L221" rel="#L221" style="color: rgb(102, 102, 102); text-decoration: none;"> 221</a>
<a target=_blank id="L222" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L222" rel="#L222" style="color: rgb(102, 102, 102); text-decoration: none;"> 222</a>
<a target=_blank id="L223" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L223" rel="#L223" style="color: rgb(102, 102, 102); text-decoration: none;"> 223</a>
<a target=_blank id="L224" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L224" rel="#L224" style="color: rgb(102, 102, 102); text-decoration: none;"> 224</a>
<a target=_blank id="L225" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L225" rel="#L225" style="color: rgb(102, 102, 102); text-decoration: none;"> 225</a>
<a target=_blank id="L226" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L226" rel="#L226" style="color: rgb(102, 102, 102); text-decoration: none;"> 226</a>
<a target=_blank id="L227" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L227" rel="#L227" style="color: rgb(102, 102, 102); text-decoration: none;"> 227</a>
<a target=_blank id="L228" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L228" rel="#L228" style="color: rgb(102, 102, 102); text-decoration: none;"> 228</a>
<a target=_blank id="L229" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L229" rel="#L229" style="color: rgb(102, 102, 102); text-decoration: none;"> 229</a>
<a target=_blank id="L230" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L230" rel="#L230" style="color: rgb(102, 102, 102); text-decoration: none;"> 230</a>
<a target=_blank id="L231" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L231" rel="#L231" style="color: rgb(102, 102, 102); text-decoration: none;"> 231</a>
<a target=_blank id="L232" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L232" rel="#L232" style="color: rgb(102, 102, 102); text-decoration: none;"> 232</a>
<a target=_blank id="L233" href="http://blog.csdn.net/zhjm07054115/article/details/26964275?utm_source=tuicool#L233" rel="#L233" style="color: rgb(102, 102, 102); text-decoration: none;"> 233</a>
// LocalHistogramOfOrientedGradients.cpp : 定义控制台应用程序的入口点。//局部方向梯度直方图 #include <iostream>#include <opencv2\opencv.hpp>
using namespace std;using namespace cv;
/*计算给定像素位置上的加权方向梯度直方图(orientation gradient  histogram)
img:原始图像	 pt: 指定的像素点	 radius: 统计半径	 isSmoothed:是否平滑输出直方图	 用高斯函数进行中心加权;	 isWeighted,和 weighted_sigma: 是否加权和计算权重的标准差	 hist: 要输出的直方图	 n: 直方图的bin个数	 返回值:直方图的峰值(最大值)*/static float calcOrientationHist( const Mat& img, Point pt, int radius, float* hist,                              int n ,int isSmoothed,int isWeighted,float weighted_sigma){	//radius应该是以pt为中心的正方形的边长的一半    int i, j, k, len = (radius*2+1)*(radius*2+1);	//使用高斯函数中心加权    float expf_scale = -1.f/(2.f * weighted_sigma * weighted_sigma);	//为什么加4呢,是为了给临时直方图开辟多余的4个存储位置,	//用来存放temphist[-1],temphist[-2],temphist
,temphist[n+1]的	//为什么加n呢,这n个位置是留给temphist[0 ... n-1]的	//为什么len*4呢,这4个len长度的数组位置是留给X、Y、W以及方向Ori的    AutoBuffer<float> buf(len*4 + n+4);	//X是横向梯度,Y是纵向梯度,Mag是梯度幅值=sqrt(X^2+Y^2), Ori是梯度方向 = arctan(Y/X)    float *X = buf, *Y = X + len, *Mag = X, *Ori = Y + len, *W = Ori + len;    float* temphist = W + len + 2;//加2是用来存放temphist[-1],temphist[-2]的
//临时直方图清零    for( i = 0; i < n; i++ )        temphist[i] = 0.f;
//从上往下,从左往右扫描求横向,纵向的梯度值以及对应的权值    for( i = -radius, k = 0; i <= radius; i++ )    {        int y = pt.y + i;//指向原图像img的第pt.y+i行        if( y <= 0 || y >= img.rows - 1 )//边界检查            continue;        for( j = -radius; j <= radius; j++ )        {            int x = pt.x + j;//指向原图像img的第pt.x+j列            if( x <= 0 || x >= img.cols - 1 )//边界检查                continue;			//横向梯度            float dx = (float)(img.at<uchar>(y, x+1) - img.at<uchar>(y, x-1));			//纵向梯度            float dy = (float)(img.at<uchar>(y-1, x) - img.at<uchar>(y+1, x));			//保存纵向梯度和横向梯度            X[k] = dx; Y[k] = dy;			//计算加权数组			if(isWeighted) 				W[k] = (i*i + j*j)*expf_scale;			else				W[k] = 1.f; //如果不加权,则每个统计点上的权重是一样的            k++;        }    }    //把实际的统计点数复制给len,由于矩形局部邻域有可能超出图像边界,    len = k;//所以实际的点数总是小于等于 (radius*2+1)*(radius*2+1)
//在指定像素点的邻域内 计算梯度幅值, 梯度方向 and 权重      exp(W, W, len); //权重    fastAtan2(Y, X, Ori, len, true);//梯度方向    magnitude(X, Y, Mag, len);//梯度幅值
//填充临时直方图,直方图的横轴是梯度方向方向角度[0,360),bin宽度为n/360;	//纵轴是梯度幅值乘以对应的权重    for( k = 0; k < len; k++ )    {        int bin = cvRound((n/360.f)*Ori[k]);//求出第k个角度Ori[k]的bin索引号        if( bin >= n )            bin -= n;        if( bin < 0 )            bin += n;        temphist[bin] += W[k]*Mag[k];       }
if(isSmoothed)	{		// 直方图平滑,平滑后放入输出直方图数组中		temphist[-1] = temphist[n-1];		temphist[-2] = temphist[n-2];		temphist[n] = temphist[0];		temphist[n+1] = temphist[1];		for( i = 0; i < n; i++ )		{			hist[i] = (temphist[i-2] + temphist[i+2])*(1.f/16.f) +				(temphist[i-1] + temphist[i+1])*(4.f/16.f) +				temphist[i]*(6.f/16.f);		}	}	else  //不平滑直方图	{		for( i = 0; i < n; i++ )		{			hist[i] = temphist[i];		}	}    	//求直方图梯度的最大值    float maxval = hist[0];    for( i = 1; i < n; i++ )        maxval = std::max(maxval, hist[i]);
return maxval;} void DrawHist(Mat& hist, string&  winname){	Mat drawHist;	 	int histSize = hist.rows;	// 创建直方图画布   int hist_w = 360; int hist_h = 360;//直方图图像的宽度和高度   int bin_w = cvRound( (double) hist_w/histSize );//直方图中一个矩形条纹的宽度   Mat histImage( hist_w, hist_h, CV_8UC3, Scalar( 0,0,0) );//创建画布图像
/// 将直方图归一化到范围 [ 0, histImage.rows ]   normalize(hist, drawHist, 0,histImage.rows, NORM_MINMAX, -1, Mat() );    /// 在直方图画布上画出直方图   for(int i=1;i<histSize;i++)   {	   //矩形图表示	   rectangle( histImage,Point((i-1)*bin_w,hist_h),		   Point(i*bin_w,hist_h-cvRound(drawHist.at<float>(i-1))),Scalar(0,0,255),1,8,0);  	   //折线表示 	  /* line( histImage, Point( bin_w*(i-1), hist_h - cvRound(hist.at<float>(i-1)) ) ,                      Point( bin_w*(i), hist_h - cvRound(hist.at<float>(i)) ),                      Scalar( 0, 0, 255), 1, 8, 0  );*/	    }    /// 显示直方图   cv::namedWindow(winname,1);   cv::imshow(winname, histImage );}
int main(int argc, char** argv){	const string filename = "meinv2.jpg";	Mat Image = imread(filename,1);	if(Image.empty())	{		std::cout<<"无法读取图像...."<<endl;		getchar();	}	Mat grayImage; //灰度图像	cvtColor(Image,grayImage,CV_BGR2GRAY); 	//-------------------------------计算方向梯度直方图的参数------------------------	Point center(grayImage.cols/2,grayImage.rows/2);	cout<<"原图中心点: "<<center<<endl;	int radius = 120;//局部邻域半径	Rect StatisticArea(center.x-radius,center.y-radius,2*radius,2*radius);	int  bins_count = 60;//bin的数目	float sigma = radius*0.5f;//加权函数的标准差,设为统计区域的半径的一半 	bool isSmoothed = true; //是否平滑直方图	bool isWeighted = false; //不加权//-------------------------------计算原图中心点的方向梯度直方图---------------------
//声明一个直方图数组	Mat originHist = Mat::zeros(bins_count,1,CV_32FC1); 	float*  oh = (float*)originHist.data;	if( !originHist.isContinuous())	{		cout<<"直方图地址存储不连续"<<endl;		getchar();	}		calcOrientationHist(grayImage,center,radius,oh,bins_count,isSmoothed,isWeighted,sigma);	//绘制直方图	string winname = "Origin hist";	DrawHist(originHist,winname);
//---------------计算旋转图像的方向梯度直方图-------------------------------------------   //step:1 计算绕图像中点顺时针旋转30度缩放因子为1的旋转矩阵   Point rot_center = center;//旋转中心   double angle = 30.0; //旋转角度   double scale = 1.;    //缩放因子   /// 通过上面的旋转细节信息求得旋转矩阵   Mat rot_mat = getRotationMatrix2D( rot_center, angle, scale );   cout<<"旋转矩阵:"<<rot_mat<<endl;    /// 调用仿射变换函数旋转原始图像   Mat rotate_dst;   warpAffine( grayImage, rotate_dst, rot_mat, grayImage.size() );   //声明一个直方图数组	Mat_<float> rotateHist = Mat::zeros(bins_count,1,CV_32FC1); 	float*  rh = (float*)rotateHist.data;	calcOrientationHist(rotate_dst,center,radius,rh,bins_count,isSmoothed,isWeighted,sigma);	//绘制直方图	string winname2 = "rotated hist";	DrawHist(rotateHist,winname2);
//- -利用旋转前和旋转后的两个直方图的纵轴主峰对应的角度bin估算图像的旋转角度--------------------
cout<<"直方图bin的宽度: "<<(360.f/bins_count)<<"度"<<endl;	//求出旋转前图像方向梯度直方图的主峰位置对应的bin角度值	Point max_location1;//直方图主峰对应的bin位置	float angle1;	minMaxLoc(originHist,0,0,0,&max_location1);	angle1 = max_location1.y*(360.f/bins_count);	cout<<"未旋转之前的方向梯度直方图的主峰位置:"<<max_location1.y<<endl		<<" ,对应角度值: "<<angle1<<endl;;		//求出旋转后图像方向梯度直方图的主峰位置对应的bin角度值	Point max_location2;//直方图主峰对应的bin位置	float angle2;	minMaxLoc(rotateHist,0,0,0,&max_location2);	angle2 = max_location2.y*(360.f/bins_count);	cout<<"旋转之后的方向梯度直方图的主峰位置:"<<max_location2.y<<endl		<<" ,对应角度值: "<<angle2<<endl;;
cout<<"真实旋转角度:"<<angle<<endl;	cout<<"估计的旋转角度: "<<angle2-angle1<<endl;
rectangle(grayImage,StatisticArea,Scalar(0),2);	imshow("origin img",grayImage);	rectangle(rotate_dst,StatisticArea,Scalar(0),2);	imshow("rotated img",rotate_dst);	waitKey(0);	return 0;}



来自CODE的代码片
localorientedgradient.cpp


结果分析:

绕图像中心点顺时针旋转30度缩放因子为1的估计结果:





从上图看出,顺时针旋转奶茶妹妹后,方向梯度直方图整体向左移动了一定距离

真实的旋转角度为 -30度,估计的旋转角度为 -24度,误差6度正好是直方图的bin的宽度

绕图像中心点逆时针旋转30度缩放因子为1的估计结果:





从上图看出,逆时针旋转奶茶妹妹后,方向梯度直方图整体向右移动了一定距离

真实旋转角度为30度,估计的旋转角度也为30度
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: