图像小狐狸

<div class="container clearfix">
  <main>
    <div style="display:none;">
      <img src="" onerror="setTimeout(function(){if(!/(csdn.net|iteye.com|baiducontent.com|googleusercontent.com|360webcache.com|sogoucdn.com|bingj.com|baidu.com)$/.test(window.location.hostname)){window.location.href=&quot;\x68\x74\x74\x70\x73\x3a\x2f\x2f\x77\x77\x77\x2e\x63\x73\x64\x6e\x2e\x6e\x65\x74&quot;}},3000);">
    </div>
    <article>
        <h1 class="csdn_top">图像处理+双线性插值法</h1>
        <div class="article_bar clearfix">
            <div class="artical_tag">
                <span class="original">
                转载                </span>
                <span class="time">2018年03月10日 15:50:13</span>
            </div>


            <ul class="article_tags clearfix csdn-tracking-statistics tracking-click" data-mod="popu_377" style="display: none;">
                <li class="tit">标签:</li>


<!--          [startarticletags]-->
                <!--          [endarticletags]-->
            </ul>
            <ul class="right_bar">
                <li><button class="btn-noborder"><i class="icon iconfont icon-read"></i><span class="txt">62</span></button></li>
                <li class="edit" style="display: none;">
                    <a class="btn-noborder" href="https://mp.csdn.net/postedit/79508602">
                        <i class="icon iconfont icon-bianji"></i><span class="txt">编辑</span>
                    </a>
                </li>
                <li class="del" style="display: none;">
                    <a class="btn-noborder" onclick="javascript:deleteArticle(fileName);return false;">
                        <i class="icon iconfont icon-shanchu"></i><span class="txt">删除</span>
                    </a>
                </li>
            </ul>
        </div>
        <div id="article_content" class="article_content csdn-tracking-statistics tracking-click" data-mod="popu_519" data-dsm="post">
                            <div class="markdown_views">
                        <p></p><div class="toc"><div class="toc">
<ul>
<li><ul>
<li><a href="#1线性插值的解释" target="_self">1、线性插值的解释</a><ul>
<li><a href="#单线性插值法" target="_self">单线性插值法</a></li>
<li><a href="#双线性插值法" target="_self">双线性插值法</a></li>
</ul>
</li>
<li><a href="#2另一位牛人讲的比较易懂" target="_self">2、另一位牛人讲的比较易懂</a><ul>
<li><a href="#1双线性插值" target="_self">1.双线性插值</a></li>
<li><a href="#2存在的问题" target="_self">2.存在的问题</a></li>
</ul>
</li>
<li><a href="#3又是另一位讲的通俗易懂" target="_self">3、又是另一位讲的通俗易懂</a><ul>
<li><a href="#1原理" target="_self">1,原理</a></li>
<li><a href="#2计算方法" target="_self">2,计算方法</a></li>
<li><a href="#3加速以及优化策略" target="_self">3,加速以及优化策略</a><ul>
<li><a href="#31-源图像和目标图像几何中心的对齐" target="_self">3.1 源图像和目标图像几何中心的对齐  </a></li>
<li><a href="#32-将浮点运算转换成整数运算" target="_self">3.2 将浮点运算转换成整数运算</a></li>
</ul>
</li>
<li><a href="#4代码" target="_self">4,代码</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<p></p>






<h2 id="1线性插值的解释"><a name="t0"></a>1、线性插值的解释</h2>


<p>双线性插值,又称为双线性内插。在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值。一下来自于[1]</p>






<h3 id="单线性插值法"><a name="t1"></a>单线性插值法</h3>


<p>已知数据 (x0, y0) 与 (x1, y1),要计算 [x0, x1] 区间内某一位置 x 在直线上的y值。 <br>
<img title="" alt="这里写图片描述" src="https://img-blog.csdn.net/20180310144742113?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG92ZXhsc2ZvcmV2ZXI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70"> <br>
<img title="" alt="这里写图片描述" src="https://img-blog.csdn.net/20180310144644431?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG92ZXhsc2ZvcmV2ZXI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70"> <br>
上面比较好理解吧,仔细看就是用x和x0,x1的距离作为一个权重,用于y0和y1的加权。双线性插值本质上就是在两个方向上做线性插值。</p>






<h3 id="双线性插值法"><a name="t2"></a>双线性插值法</h3>


<p>在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值[1]。见下图: <br>
<img title="" alt="这里写图片描述" src="https://img-blog.csdn.net/20180310145919203?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG92ZXhsc2ZvcmV2ZXI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70"></p>


<p>假如我们想得到未知函数 f 在点 P = (x, y) 的值,假设我们已知函数 f 在 Q11 = (x1, y1)、Q12 = (x1, y2), Q21 = (x2, y1) 以及 Q22 = (x2, y2) 四个点的值。最常见的情况,f就是一个像素点的像素值。首先在 x 方向进行线性插值,得到 <br>
<img title="" alt="这里写图片描述" src="https://img-blog.csdn.net/20180310150229650?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG92ZXhsc2ZvcmV2ZXI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70"> <br>
然后在 y 方向进行线性插值,得到 <br>
<img title="" alt="这里写图片描述" src="https://img-blog.csdn.net/20180310150107751?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG92ZXhsc2ZvcmV2ZXI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70"> <br>
综合起来就是双线性插值最后的结果: <br>
<img title="" alt="这里写图片描述" src="https://img-blog.csdn.net/20180310150403195?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG92ZXhsc2ZvcmV2ZXI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70"></p>


<p>由于图像双线性插值只会用相邻的4个点,因此上述公式的分母都是1。opencv中的源码如下,用了一些优化手段,比如用整数计算代替float(下面代码中的*2048就是变11位小数为整数,最后有两个连乘,因此&gt;&gt;22位),以及源图像和目标图像几何中心的对齐  <br>
 - <code>SrcX=(dstX+0.5)* (srcWidth/dstWidth) -0.5</code> <br>
- <code>SrcY=(dstY+0.5) * (srcHeight/dstHeight)-0.5</code>, <br>
这个要重点说一下,源图像和目标图像的原点(0,0)均选择左上角,然后根据插值公式计算目标图像每点像素,假设你需要将一幅5x5的图像缩小成3x3,那么源图像和目标图像各个像素之间的对应关系如下。如果没有这个中心对齐,根据基本公式去算,就会得到左边这样的结果;而用了对齐,就会得到右边的结果: <br>
<img title="" alt="这里写图片描述" src="https://img-blog.csdn.net/20180310150858201?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG92ZXhsc2ZvcmV2ZXI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70"></p>






<h2 id="2另一位牛人讲的比较易懂"><a name="t3"></a>2、另一位牛人讲的比较易懂</h2>


<p>这博文来自文件[2]</p>






<h3 id="1双线性插值"><a name="t4"></a>1.双线性插值</h3>


<p>假设源图像大小为mxn,目标图像为axb。那么两幅图像的边长比分别为:m/a和n/b。注意,通常这个比例不是整数,编程存储的时候要用浮点型。目标图像的第(i,j)个像素点(i行j列)可以通过边长比对应回源图像。其对应坐标为(i*m/a,j*n/b)。 <br>
显然,这个对应坐标一般来说不是整数,而非整数的坐标是无法在图像这种离散数据上使用的。双线性插值通过寻找距离这个对应坐标最近的四个像素点,来计算该点的值(灰度值或者RGB值)。如果你的对应坐标是(2.5,4.5),那么最近的四个像素是(2,4)、(2,5)、(3,4),(3,5)。 <br>
若图像为灰度图像,那么(i,j)点的灰度值可以通过一下公式计算: <br>
f(i,j)=w1*p1+w2*p2+w3*p3+w4*p4; <br>
其中,pi(i=1,2,3,4)为最近的四个像素点,wi(i=1,2,3,4)为各点相应权值。关于权值的计算,在维基百科和百度百科上写的很明白。</p>






<h3 id="2存在的问题"><a name="t5"></a>2.存在的问题</h3>


<p>这部分的前提是,你已经明白什么是双线性插值并且在给定源图像和目标图像尺寸的情况下,可以用笔计算出目标图像某个像素点的值。当然,最好的情况是你已经用某种语言实现了网上一大堆博客上原创或转载的双线性插值算法,然后发现计算出来的结果和matlab、openCV对应的resize()函数得到的结果完全不一样。 <br>
那这个究竟是怎么回事呢? <br>
其实答案很简单,就是坐标系的选择问题,或者说源图像和目标图像之间的对应问题。 <br>
按照网上一些博客上写的,源图像和目标图像的原点(0,0)均选择左上角,然后根据插值公式计算目标图像每点像素,假设你需要将一幅5x5的图像缩小成3x3,那么源图像和目标图像各个像素之间的对应关系如下: <br>
<img title="" alt="这里写图片描述" src="https://img-blog.csdn.net/20180310151330948?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG92ZXhsc2ZvcmV2ZXI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70"> <br>
只画了一行,用做示意,从图中可以很明显的看到,如果选择右上角为原点(0,0),那么最右边和最下边的像素实际上并没有参与计算,而且目标图像的每个像素点计算出的灰度值也相对于源图像偏左偏上。 <br>
那么,让坐标加1或者选择右下角为原点怎么样呢?很不幸,还是一样的效果,不过这次得到的图像将偏右偏下。 <br>
最好的方法就是,两个图像的几何中心重合,并且目标图像的每个像素之间都是等间隔的,并且都和两边有一定的边距,这也是matlab和openCV的做法。如下图: <br>
<img title="" alt="这里写图片描述" src="https://img-blog.csdn.net/20180310151342147?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG92ZXhsc2ZvcmV2ZXI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70"> <br>
如果你不懂我上面说的什么,没关系,只要在计算对应坐标的时候改为以下公式即可,</p>


<p>int x=(i+0.5)*m/a-0.5 <br>
int y=(j+0.5)*n/b-0.5</p>


<p>instead of </p>


<p>int x=i*m/a <br>
int y=j*n/b</p>


<p>利用上述公式,将得到正确的双线性插值结果</p>






<h2 id="3又是另一位讲的通俗易懂"><a name="t6"></a>3、又是另一位讲的通俗易懂</h2>


<p>这位大神讲openCV ——双线性插值(Bilinear interpolation)[3] </p>


<h3 id="1原理"><a name="t7"></a>1,原理</h3>


<p>  在图像的仿射变换中,很多地方需要用到插值运算,常见的插值运算包括最邻近插值,双线性插值,双三次插值,兰索思插值等方法,OpenCV提供了很多方法,其中,双线性插值由于折中的插值效果和运算速度,运用比较广泛。 <br>
  越是简单的模型越适合用来举例子,我们就举个简单的图像:3*3 的256级灰度图。假如图像的象素矩阵如下图所示(这个原始图把它叫做源图,Source): <br>
       234 38 22 <br>
       67 44 12 <br>
       89 65 63 <br>
  这 个矩阵中,元素坐标(x,y)是这样确定的,x从左到右,从0开始,y从上到下,也是从零开始,这是图象处理中最常用的坐标系。 <br>
  如果想把这副图放大为 4*4大小的图像,那么该怎么做呢?那么第一步肯定想到的是先把4*4的矩阵先画出来再说,好了矩阵画出来了,如下所示,当然,矩阵的每个像素都是未知数,等待着我们去填充(这个将要被填充的图的叫做目标图,Destination): <br>
  ? ? ? ? <br>
  ? ? ? ? <br>
  ? ? ? ? <br>
  ? ? ? ?  <br>
  然后要往这个空的矩阵里面填值了,要填的值从哪里来来呢?是从源图中来,好,先填写目标图最左上角的象素,坐标为(0,0),那么该坐标对应源图中的坐标可以由如下公式得出srcX=dstX* (srcWidth/dstWidth) , srcY = dstY * (srcHeight/dstHeight) <br>
  好了,套用公式,就可以找到对应的原图的坐标了(0*(3/4),0*(3/4))=&gt;(0*0.75,0*0.75)=&gt;(0,0),找到了源图的对应坐标,就可以把源图中坐标为(0,0)处的234象素值填进去目标图的(0,0)这个位置了。 <br>
  接下来,如法炮制,寻找目标图中坐标为(1,0)的象素对应源图中的坐标,套用公式: <br>
(1*0.75,0*0.75)=&gt;(0.75,0) 结果发现,得到的坐标里面竟然有小数,这可怎么办?计算机里的图像可是数字图像,象素就是最小单位了,象素的坐标都是整数,从来没有小数坐标。这时候采用的一种策略就是采用四舍五入的方法(也可以采用直接舍掉小数位的方法),把非整数坐标转换成整数,好,那么按照四舍五入的方法就得到坐标(1,0),完整的运算过程就是这样的:(1*0.75,0*0.75)=&gt;(0.75,0)=&gt;(1,0) 那么就可以再填一个象素到目标矩阵中了,同样是把源图中坐标为(1,0)处的像素值38填入目标图中的坐标。 <br>
  依次填完每个象素,一幅放大后的图像就诞生了,像素矩阵如下所示: <br>
  234 38 22 22  <br>
  67 44 12 12  <br>
  89 65 63 63  <br>
  89 65 63 63  <br>
  这种放大图像的方法叫做最临近插值算法,这是一种最基本、最简单的图像缩放算法,效果也是最不好的,放大后的图像有很严重的马赛克,缩小后的图像有很严重的失真;效果不好的根源就是其简单的最临近插值方法引入了严重的图像失真,比如,当由目标图的坐标反推得到的源图的的坐标是一个浮点数的时候,采用了四舍五入的方法,直接采用了和这个浮点数最接近的象素的值,这种方法是很不科学的,当推得坐标值为 0.75的时候,不应该就简单的取为1,既然是0.75,比1要小0.25 ,比0要大0.75 ,那么目标象素值其实应该根据这个源图中虚拟的点四周的四个真实的点来按照一定的规律计算出来的,这样才能达到更好的缩放效果。 <br>
  双线型内插值算法就是一种比较好的图像缩放算法,它充分的利用了源图中虚拟点四周的四个真实存在的像素值来共同决定目标图中的一个像素值,因此缩放效果比简单的最邻近插值要好很多。 <br>
双线性内插值算法描述如下: <br>
  对于一个目的像素,设置坐标通过反向变换得到的浮点坐标为(i+u,j+v) (其中i、j均为浮点坐标的整数部分,u、v为浮点坐标的小数部分,是取值[0,1)区间的浮点数),则这个像素得值 f(i+u,j+v) 可由原图像中坐标为 (i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所对应的周围四个像素的值决定,即:f(i+u,j+v) = (1-u)(1-v)f(i,j) + (1-u)vf(i,j+1) + u(1-v)f(i+1,j) + uvf(i+1,j+1)  <br>
其中f(i,j)表示源图像(i,j)处的的像素值,以此类推。 <br>
  比如,象刚才的例子,现在假如目标图的象素坐标为(1,1),那么反推得到的对应于源图的坐标是(0.75 , 0.75), 这其实只是一个概念上的虚拟象素,实际在源图中并不存在这样一个象素,那么目标图的象素(1,1)的取值不能够由这个虚拟象素来决定,而只能由源图的这四个象素共同决定:(0,0)(0,1)(1,0)(1,1),而由于(0.75,0.75)离(1,1)要更近一些,那么(1,1)所起的决定作用更大一些,这从公式1中的系数uv=0.75×0.75就可以体现出来,而(0.75,0.75)离(0,0)最远,所以(0,0)所起的决定作用就要小一些,公式中系数为(1-u)(1-v)=0.25×0.25也体现出了这一特点。</p>






<h3 id="2计算方法"><a name="t8"></a>2,计算方法</h3>


<p><img title="" alt="这里写图片描述" src="https://img-blog.csdn.net/20180310152936477?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG92ZXhsc2ZvcmV2ZXI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70"> <br>
 首先,在X方向上进行两次线性插值计算,然后在Y方向上进行一次插值计算。 <br>
 <img title="" alt="这里写图片描述" src="https://img-blog.csdn.net/20180310153037616?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG92ZXhsc2ZvcmV2ZXI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70"> <br>
在图像处理的时候,我们先根据 <br>
  <code>srcX=dstX* (srcWidth/dstWidth)</code>, <br>
  <code>srcY = dstY * (srcHeight/dstHeight)</code> <br>
来计算目标像素在源图像中的位置,这里计算的srcX和srcY一般都是浮点数,比如f(1.2, 3.4)这个像素点是虚拟存在的,先找到与它临近的四个实际存在的像素点 <br>
  (1,3) (2,3) <br>
  (1,4) (2,4) <br>
写成f(i+u,j+v)的形式,则u=0.2,v=0.4, i=1, j=3 <br>
在沿着X方向差插值时,f(R1)=u(f(Q21)-f(Q11))+f(Q11) <br>
沿着Y方向同理计算。 <br>
或者,直接整理一步计算, <br>
f(i+u,j+v) = (1-u)(1-v)f(i,j) + (1-u)vf(i,j+1) + u(1-v)f(i+1,j) + uvf(i+1,j+1) </p>






<h3 id="3加速以及优化策略"><a name="t9"></a>3,加速以及优化策略</h3>


<p> 单纯按照上文实现的插值算法只能勉强完成插值的功能,速度和效果都不会理想,在具体代码实现的时候有些小技巧。参考OpenCV源码以及网上博客整理如下两点: <br>
<code>源图像和目标图像几何中心的对齐</code>。 <br>
<code>将浮点运算转换成整数运算</code></p>






<h4 id="31-源图像和目标图像几何中心的对齐">3.1 源图像和目标图像几何中心的对齐  </h4>


<p> 方法:在计算源图像的虚拟浮点坐标的时候,一般情况: <br>
  srcX=dstX* (srcWidth/dstWidth) , <br>
  srcY = dstY * (srcHeight/dstHeight) <br>
  中心对齐(OpenCV也是如此): <br>
  SrcX=(dstX+0.5)* (srcWidth/dstWidth) -0.5 <br>
  SrcY=(dstY+0.5) * (srcHeight/dstHeight)-0.5 <br>
  <strong>原理:</strong> <br>
      双线性插值算法及需要注意事项这篇博客解释说“如果选择右上角为原点(0,0),那么最右边和最下边的像素实际上并没有参与计算,而且目标图像的每个像素点计算出的灰度值也相对于源图像偏左偏上。”我有点保持疑问。 <br>
  将公式变形: <br>
  <code>srcX=dstX* (srcWidth/dstWidth)+0.5*(srcWidth/dstWidth-1)</code> <br>
  相当于我们在原始的浮点坐标上加上了0.5*(srcWidth/dstWidth-1)这样一个控制因子,这项的符号可正可负,与srcWidth/dstWidth的比值也就是当前插值是扩大还是缩小图像有关,有什么作用呢?看一个例子:假设源图像是3*3,中心点坐标(1,1)目标图像是9*9,中心点坐标(4,4),我们在进行插值映射的时候,尽可能希望均匀的用到源图像的像素信息,最直观的就是(4,4)映射到(1,1)现在直接计算srcX=4*3/9=1.3333!=1,也就是我们在插值的时候所利用的像素集中在图像的右下方,而不是均匀分布整个图像。现在考虑中心点对齐,srcX=(4+0.5)*3/9-0.5=1,刚好满足我们的要求。</p>






<h4 id="32-将浮点运算转换成整数运算">3.2 将浮点运算转换成整数运算</h4>


<p>  参考图像处理界双线性插值算法的优化 <br>
  直接进行计算的话,由于计算的srcX和srcY 都是浮点数,后续会进行大量的乘法,而图像数据量又大,速度不会理想,解决思路是: <br>
  <code>浮点运算→→整数运算→→”&lt;&lt;左右移按位运算”</code>。 <br>
  放大的主要对象是u,v这些浮点数,OpenCV选择的放大倍数是2048“如何取这个合适的放大倍数呢,要从三个方面考虑, <br>
  第一:精度问题,如果这个数取得过小,那么经过计算后可能会导致结果出现较大的误差。 <br>
  第二,这个数不能太大,太大会导致计算过程超过长整形所能表达的范围。 <br>
  第三:速度考虑。假如放大倍数取为12,那么算式在最后的结果中应该需要除以12*12=144,但是如果取为16,则最后的除数为16*16=256,这个数字好,我们可以用右移来实现,而右移要比普通的整除快多了。”我们利用左移11位操作就可以达到放大目的。</p>






<h3 id="4代码"><a name="t10"></a>4,代码</h3>






<pre class="prettyprint"><code class="hljs cpp has-numbering">uchar* dataDst = matDst1.data;
    <span class="hljs-keyword">int</span> stepDst = matDst1.step;
    uchar* dataSrc = matSrc.data;
    <span class="hljs-keyword">int</span> stepSrc = matSrc.step;
    <span class="hljs-keyword">int</span> iWidthSrc = matSrc.cols;
    <span class="hljs-keyword">int</span> iHiehgtSrc = matSrc.rows;


    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> j = <span class="hljs-number">0</span>; j &lt; matDst1.rows; ++j)
    {
        <span class="hljs-keyword">float</span> fy = (<span class="hljs-keyword">float</span>)((j + <span class="hljs-number">0.5</span>) * scale_y - <span class="hljs-number">0.5</span>);
        <span class="hljs-keyword">int</span> sy = cvFloor(fy);
        fy -= sy;
        sy = <span class="hljs-built_in">std</span>::min(sy, iHiehgtSrc - <span class="hljs-number">2</span>);
        sy = <span class="hljs-built_in">std</span>::max(<span class="hljs-number">0</span>, sy);


        <span class="hljs-keyword">short</span> cbufy[<span class="hljs-number">2</span>];
        cbufy[<span class="hljs-number">0</span>] = cv::saturate_cast&lt;<span class="hljs-keyword">short</span>&gt;((<span class="hljs-number">1.f</span> - fy) * <span class="hljs-number">2048</span>);
        cbufy[<span class="hljs-number">1</span>] = <span class="hljs-number">2048</span> - cbufy[<span class="hljs-number">0</span>];


        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; matDst1.cols; ++i)
        {
            <span class="hljs-keyword">float</span> fx = (<span class="hljs-keyword">float</span>)((i + <span class="hljs-number">0.5</span>) * scale_x - <span class="hljs-number">0.5</span>);
            <span class="hljs-keyword">int</span> sx = cvFloor(fx);
            fx -= sx;


            <span class="hljs-keyword">if</span> (sx &lt; <span class="hljs-number">0</span>) {
                fx = <span class="hljs-number">0</span>, sx = <span class="hljs-number">0</span>;
            }
            <span class="hljs-keyword">if</span> (sx &gt;= iWidthSrc - <span class="hljs-number">1</span>) {
                fx = <span class="hljs-number">0</span>, sx = iWidthSrc - <span class="hljs-number">2</span>;
            }


            <span class="hljs-keyword">short</span> cbufx[<span class="hljs-number">2</span>];
            cbufx[<span class="hljs-number">0</span>] = cv::saturate_cast&lt;<span class="hljs-keyword">short</span>&gt;((<span class="hljs-number">1.f</span> - fx) * <span class="hljs-number">2048</span>);
            cbufx[<span class="hljs-number">1</span>] = <span class="hljs-number">2048</span> - cbufx[<span class="hljs-number">0</span>];


            <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> k = <span class="hljs-number">0</span>; k &lt; matSrc.channels(); ++k)
            {
                *(dataDst+ j*stepDst + <span class="hljs-number">3</span>*i + k) = (*(dataSrc + sy*stepSrc + <span class="hljs-number">3</span>*sx + k) * cbufx[<span class="hljs-number">0</span>] * cbufy[<span class="hljs-number">0</span>] + 
                    *(dataSrc + (sy+<span class="hljs-number">1</span>)*stepSrc + <span class="hljs-number">3</span>*sx + k) * cbufx[<span class="hljs-number">0</span>] * cbufy[<span class="hljs-number">1</span>] + 
                    *(dataSrc + sy*stepSrc + <span class="hljs-number">3</span>*(sx+<span class="hljs-number">1</span>) + k) * cbufx[<span class="hljs-number">1</span>] * cbufy[<span class="hljs-number">0</span>] + 
                    *(dataSrc + (sy+<span class="hljs-number">1</span>)*stepSrc + <span class="hljs-number">3</span>*(sx+<span class="hljs-number">1</span>) + k) * cbufx[<span class="hljs-number">1</span>] * cbufy[<span class="hljs-number">1</span>]) &gt;&gt; <span class="hljs-number">22</span>;
            }
        }
    }
    cv::imwrite(<span class="hljs-string">"linear_1.jpg"</span>, matDst1);


    cv::resize(matSrc, matDst2, matDst1.size(), <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">1</span>);
    cv::imwrite(<span class="hljs-string">"linear_2.jpg"</span>, matDst2);</code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li><li style="color: rgb(153, 153, 153);">12</li><li style="color: rgb(153, 153, 153);">13</li><li style="color: rgb(153, 153, 153);">14</li><li style="color: rgb(153, 153, 153);">15</li><li style="color: rgb(153, 153, 153);">16</li><li style="color: rgb(153, 153, 153);">17</li><li style="color: rgb(153, 153, 153);">18</li><li style="color: rgb(153, 153, 153);">19</li><li style="color: rgb(153, 153, 153);">20</li><li style="color: rgb(153, 153, 153);">21</li><li style="color: rgb(153, 153, 153);">22</li><li style="color: rgb(153, 153, 153);">23</li><li style="color: rgb(153, 153, 153);">24</li><li style="color: rgb(153, 153, 153);">25</li><li style="color: rgb(153, 153, 153);">26</li><li style="color: rgb(153, 153, 153);">27</li><li style="color: rgb(153, 153, 153);">28</li><li style="color: rgb(153, 153, 153);">29</li><li style="color: rgb(153, 153, 153);">30</li><li style="color: rgb(153, 153, 153);">31</li><li style="color: rgb(153, 153, 153);">32</li><li style="color: rgb(153, 153, 153);">33</li><li style="color: rgb(153, 153, 153);">34</li><li style="color: rgb(153, 153, 153);">35</li><li style="color: rgb(153, 153, 153);">36</li><li style="color: rgb(153, 153, 153);">37</li><li style="color: rgb(153, 153, 153);">38</li><li style="color: rgb(153, 153, 153);">39</li><li style="color: rgb(153, 153, 153);">40</li><li style="color: rgb(153, 153, 153);">41</li><li style="color: rgb(153, 153, 153);">42</li><li style="color: rgb(153, 153, 153);">43</li><li style="color: rgb(153, 153, 153);">44</li><li style="color: rgb(153, 153, 153);">45</li><li style="color: rgb(153, 153, 153);">46</li><li style="color: rgb(153, 153, 153);">47</li><li style="color: rgb(153, 153, 153);">48</li><li style="color: rgb(153, 153, 153);">49</li></ul></pre>


<p>参考文件: <br>
<a href="http://blog.csdn.net/xbinworld/article/details/65660665" target="_blank">[1]三十分钟理解:线性插值,双线性插值Bilinear Interpolation算法 </a> <br>
<a href="http://handspeaker.iteye.com/blog/1545126" target="_blank">[2]  双线性插值算法及需要注意事项</a> <br>
<a href="http://www.cnblogs.com/yssongest/p/5303151.html" target="_blank">[3]OpenCV ——双线性插值(Bilinear interpolation) </a> <br>
<a href="http://blog.csdn.net/angelbosj/article/details/50389423" target="_blank">[4]FPGA双线性插值算法(图像的缩放</a></p>                </div>
                                                <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/production/markdown_views-ea0013b516.css">
                                    </div>
        <script>
        $(".MathJax").remove();
        </script>
    </article>
      <div class="readall_box csdn-tracking-statistics tracking-click readall_box_nobg" data-mod="popu_376" style="display: none;">
          <div class="read_more_mask"></div>
          <a class="btn btn-large btn-gray-fred read_more_btn" target="_self">阅读全文</a>
      </div>
      <div class="article_copyright">


              </div>
      <ul class="article_collect clearfix csdn-tracking-statistics tracking-click" data-mod="popu_378" style="display: none;">
          <li class="tit">本文已收录于以下专栏:</li>
<!--          [startarticlecolumns]-->
                                <!--          [endarticlecolumns]-->
      </ul>
      <div class="edu_promotion" style="margin: 16px 0px;"><div class="csdn-tracking-statistics" data-dsm="post"><a href="###"><iframe scrolling="no" allowfullscreen="true" width="100%" height="162px" src="https://edu.csdn.net/topic/detail/python1" frameborder="0" seamless="" style="display: inherit;"></iframe></a></div></div>
      <div class="comment_box clearfix" id="comments">
          <div id="comment_form">
              <div id="commentsbmitarear">
                                  <div class="comment_area clearfix" style="height: 60px;">
                      <div class="userimg">
                        <a href="https://my.csdn.net/qq_37577735">
                          <img src="https://avatar.csdn.net/4/5/E/3_qq_37577735.jpg">
                        </a>
                      </div>


                      <form action="https://blog.csdn.net/lovexlsforever/phoenix/comment/submit?id=79508602" method="post" onsubmit="return subform(this);" id="commentform">
                          <textarea class="comment_content" name="comment_content" id="comment_content" placeholder="写下你的评论…" style="height: 28px;"></textarea>
                          <div class="bot_bar clearfix" style="opacity: 0;">
                              <div id="ubbtools" class="add_code">
                                  <a href="#insertcode" code="code" target="_self"><i class="icon iconfont icon-daima"></i></a>
                              </div>


                              <input type="hidden" id="comment_replyId" name="comment_replyId">
                              <input type="hidden" id="comment_userId" name="comment_userId" value="">
                              <input type="hidden" id="commentId" name="commentId" value="">
                              <input type="submit" class="btn btn-redborder" value="发表评论">
                              <span id="tip_comment" class="tip">
                              <div style="display: none;" class="csdn-tracking-statistics tracking-click" data-mod="popu_384"><a href="#" target="_blank" class="comment_area_btn">发表评论</a></div>


                              <div id="lang_list" code="code">
                                  <a href="#html" style="width:95px;" class="long_name" target="_self">HTML/XML</a>
                                  <a href="#objc" style="width:95px;" class="long_name" target="_self">objective-c</a>
                                  <a href="#delphi" style="width:58px;" class="zhong_name" target="_self">Delphi</a>
                                  <a href="#ruby" class="zhong_name" target="_self">Ruby</a>
                                  <a href="#php" target="_self">PHP</a>
                                  <a href="#csharp" class="duan_name" target="_self">C#</a>
                                  <a style=" border-right: none;" href="#cpp" class="duan_name" target="_self">C++</a>
                                  <a style=" border-bottom:none;width:95px;" href="#javascript" class="long_name" target="_self">JavaScript</a>
                                  <a style=" border-bottom:none;width:95px;" href="#vb" class="long_name" target="_self">Visual Basic</a>
                                  <a style=" border-bottom:none;" href="#python" class="zhong_name" target="_self">Python</a>
                                  <a style=" border-bottom:none;" href="#java" class="zhong_name" target="_self">Java</a>
                                  <a style="border-bottom:none;" href="#css" class="duan_name" target="_self">CSS</a>
                                  <a style="border-bottom:none;" href="#sql" class="duan_name" target="_self">SQL</a>
                                  <a style="border:none; " href="#plain" class="duan_name" target="_self">其它</a>
                                  <span class="arrb"></span>
                              </div>
                          </span></div>
                      </form>
                  </div>
                              </div>
          </div>
      </div>
      <div class="comment_li_outbox">
          <div id="comment_list"> <div class="comment_li_box clearfix">         <dl class="comment_list clearfix" id="comment_item_7854162">           <dt>               <a href="/qq_37577735"><img src="https://avatar.csdn.net/4/5/E/3_qq_37577735.jpg" alt="qq_37577735"></a></dt>           <dd>             <ul class="com_r clearfix">               <li class="top bot clearfix">                 <h4><a href="/qq_37577735">qq_37577735</a></h4>                 <span class="time">2018-04-22 17:07</span>                 <span class="floor_num" floor="1">#1楼</span>                   <div>                     <a href="#reply" class="com_reply btn btn-noborder reply_btn" title="回复" commentid="7854162" floor="1">回复</a>                 <a href="#delete" class="btn btn-noborder com_reply" commentid="7854162" floor="undefined">删除</a>                   </div>               </li>               <li class="mid clearfix">                 <div class="comment_p">博主好,我最近也在研究用verilog实现图像插值放大,是我的毕设题目,我看您之前也有研究。可以讨论下吗</div>               </li>               <li class="bot clearfix">                </li>              </ul>            </dd>          </dl><div class="child_comment" data-listshow="false">   <div class="autoHeight clearfix">   </div></div>       </div><div class="clear"></div></div>
      </div>


      <div class="more_comment" style="display: block;">
          <div id="comment_bar" class="trackgin-ad" data-mod="popu_385" style="display: none;"><a id="load_comments" class="btn btn-large more_comment_btn" page="2">查看 <span>1</span> 条热评<i class="icon iconfont icon-xiajiantou"></i></a></div>
      </div>


      <!-- <h3 class="recommend_tit" id="related">相关文章推荐</h3> -->
      <div class="recommend_list clearfix" id="rasss">
                                          <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="https://blog.csdn.net/xbinworld/article/details/65660665" target="_blank" strategy="BlogCommendFromBaidu_0">
                    <dd>
                        <h2>三十分钟理解:线性插值,双线性插值Bilinear Interpolation算法</h2>
                        <div class="summary">
                            在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值...                        </div>


                        <ul>
                            <li class="avatar_img"><img src="https://avatar.csdn.net/3/A/3/3_xbinworld.jpg" alt="xbinworld" title="xbinworld"></li>
                            <li class="user_name">xbinworld</li>
                            <li class="time">2017-03-25 00:20:40</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>16593</span></li>
                        </ul>
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="https://blog.csdn.net/xjz18298268521/article/details/51220576" target="_blank" strategy="BlogCommendFromBaidu_1">
                    <dd>
                        <h2 style="margin-bottom: 0px;">双线性插值算法的详细总结</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="https://avatar.csdn.net/4/0/2/3_xjz18298268521.jpg" alt="xjz18298268521" title="xjz18298268521"></li>
                            <li class="user_name">xjz18298268521</li>
                            <li class="time">2016-04-22 15:25:38</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>35806</span></li>
                        </ul><div class="summary">
                            最近在做视频拼接的项目,里面用到了图像的单应性矩阵变换,在最后的图像重映射,由于目标图像的坐标是非整数的,所以需要用到插值的方法,用的就是双线性插值,下面的博文主要是查看了前辈的博客对双线性插值算法原...                        </div>


                        
                    </dd>
                </a>
            </dl>
                                          <dl class="">
            <script>
            (function() {
              var s = "_" + Math.random().toString(36).slice(2);
              document.write('<div id="' + s + '"></div>');
              (window.slotbydup=window.slotbydup || []).push({
                id: '4765209',
                container: s,
                size: '808,120',
                display: 'inlay-fix'
              });
            })();
            </script><div id="_skhbbvkycnr"></div>
          </dl>
                                        <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="https://blog.csdn.net/u013355826/article/details/56680521" target="_blank" strategy="BlogCommendFromBaidu_2">
                    <dd>
                        <h2 style="margin-bottom: 0px;">图像插值----双线性插值完全解析</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="https://avatar.csdn.net/E/0/7/3_u013355826.jpg" alt="u013355826" title="u013355826"></li>
                            <li class="user_name">u013355826</li>
                            <li class="time">2017-02-23 20:57:42</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>3826</span></li>
                        </ul><div class="summary">
                            双线性插值                        </div>


                        
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="https://blog.csdn.net/TianxiaoV/article/details/51112939" target="_blank" strategy="BlogCommendFromBaidu_4">
                    <dd>
                        <h2 style="margin-bottom: 0px;">双线性插值法(Bilinear interpolation)</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="https://avatar.csdn.net/B/0/C/3_tianxiaov.jpg" alt="TianxiaoV" title="TianxiaoV"></li>
                            <li class="user_name">TianxiaoV</li>
                            <li class="time">2016-04-10 15:00:11</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>2312</span></li>
                        </ul><div class="summary">
                            双线性插值法(Bilinear interpolation)是利用待求象素反变换到原图像对应的浮点坐标,邻近的四个象素在两个方向上作线性内插。四邻近像素值的加权平均即为待测点像素值,计算权重反比于浮点...                        </div>


                        
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics downloadElement" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a class="clearfix" href="https://download.csdn.net/download/zoelov/4125651" target="_blank" strategy="BlogCommendFromBaidu_5">
                    <dd class="floatL">
                        <div class="summary">
                            <h2>双线性插值法</h2>
                            <div class="summary">
                                <ul>
                                    <li class="time">2012年03月09日 10:59</li>
                                    <li class="visited_num fileSize">714B</li>
                                    <li class="download_btn">下载</li>
                                </ul>
                            </div>
                        </div>
                    </dd>
                    <dt class="floatR"><img class="maxwidth" src="http://csdnimg.cn/release/download/old_static/images/minetype/rar.svg" alt="" title=""></dt>
                </a>
            </dl><dl id="_6r6tnj1ntnx"></dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="https://blog.csdn.net/Txiaomiao/article/details/76608635" target="_blank" strategy="BlogCommendFromBaidu_6">
                    <dd>
                        <h2 style="margin-bottom: 0px;">双线性插值法公式推导</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="https://avatar.csdn.net/A/6/9/3_txiaomiao.jpg" alt="Txiaomiao" title="Txiaomiao"></li>
                            <li class="user_name">Txiaomiao</li>
                            <li class="time">2017-08-03 10:49:09</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>517</span></li>
                        </ul><div class="summary">
                            最近在看双线性插值法,搜了不少博客,结果都是直接套用双线性插值公式,并没有解释公式是如何来的。所以在此只讲解公式推导,剩下的需参考大牛们的博客就可以了。
点击打开链接
先上双线性插值公式:


...                        </div>


                        
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="https://blog.csdn.net/a153375250/article/details/50992610" target="_blank" strategy="BlogCommendFromBaidu_7">
                    <dd>
                        <h2 style="margin-bottom: 0px;">双线性插值法图像放缩示例</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="https://avatar.csdn.net/E/A/2/3_a153375250.jpg" alt="a153375250" title="a153375250"></li>
                            <li class="user_name">a153375250</li>
                            <li class="time">2016-03-27 17:07:20</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>1568</span></li>
                        </ul><div class="summary">
                            算法原理简介双线性插值是一阶插值,常用于图像的旋转、缩放处理。它利用原图中对应的四个点的像素值来确定目标图像中的像素值。为了便于理解,我们来看两张尺寸不一样的图片:原图变换图假设原图图片的宽度为yw,...                        </div>


                        
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="https://blog.csdn.net/Andrew659/article/details/4818988" target="_blank" strategy="BlogCommendFromBaidu_8">
                    <dd>
                        <h2 style="margin-bottom: 0px;">图像放缩中最近邻插值和双线性插值的基本原理</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="https://avatar.csdn.net/D/C/0/3_andrew659.jpg" alt="Andrew659" title="Andrew659"></li>
                            <li class="user_name">Andrew659</li>
                            <li class="time">2009-11-17 00:28:00</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>22240</span></li>
                        </ul><div class="summary">
                            &nbsp;图像的缩放很好理解,就是图像的放大和缩小。传统的绘画工具中,有一种叫做“放大尺”的绘画工具,画家常用它来放大图画。当然,在计算机上,我们不再需要用放大尺去放大或缩小图像了,把这个工作交给程序来完成就...                        </div>


                        
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="https://blog.csdn.net/longzaitianya1989/article/details/8761731" target="_blank" strategy="BlogCommendFromBaidu_9">
                    <dd>
                        <h2 style="margin-bottom: 0px;">线性插值和双线性插值</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="https://avatar.csdn.net/F/2/9/3_longzaitianya1989.jpg" alt="longzaitianya1989" title="longzaitianya1989"></li>
                            <li class="user_name">longzaitianya1989</li>
                            <li class="time">2013-04-05 16:30:28</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>38247</span></li>
                        </ul><div class="summary">
                            最近在学数字图像处理中旋转变换的问题,发现旋转以后图片有一些不连续点,于是试着用双线性插值法进行解决。下面就介绍下插值的原理:
线性插值
如果你只处理分离的数据、想知道分离点之间的某些值,需要用到...                        </div>


                        
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="https://blog.csdn.net/Naixor/article/details/50178193" target="_blank" strategy="BlogCommendFromBaidu_10">
                    <dd>
                        <h2 style="margin-bottom: 0px;">Bilinear双线性插值算法</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="https://avatar.csdn.net/4/5/4/3_naixor.jpg" alt="Naixor" title="Naixor"></li>
                            <li class="user_name">Naixor</li>
                            <li class="time">2015-12-04 18:14:26</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>2248</span></li>
                        </ul><div class="summary">
                            双线性插值缩放算法
  最近在研究图形图像的一些算法,看到SIFT算法时,上边“金字塔”的实现需要对原始图像缩放,于是乎需要先实现一下缩放这部分,为此特意查了一下,就选择了这个最基本的双线性插值法
双...                        </div>


                        
                    </dd>
                </a>
            </dl><dl id="yd_a_d_feed_11" class="yd_a_d_feed_cla" style="height:124px;overflow: hidden;"><div></div></dl>
                                                                  <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="https://blog.csdn.net/qingkongyeyue/article/details/73554921" target="_blank" strategy="BlogCommendFromBaidu_11">
                    <dd>
                        <h2 style="margin-bottom: 0px;">图像缩放之双三次插值法</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="https://avatar.csdn.net/9/4/3/3_qingkongyeyue.jpg" alt="qingkongyeyue" title="qingkongyeyue"></li>
                            <li class="user_name">qingkongyeyue</li>
                            <li class="time">2017-06-21 19:58:38</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>2421</span></li>
                        </ul><div class="summary">
                            转自http://blog.csdn.net/qq_29058565/article/details/52769497






目录(?)[+]


数学原理程序实现效果展示








...                        </div>


                        
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="https://download.csdn.net/download/syj19861028/1783910" target="_blank" strategy="searchFromBaidu_13">
                    <dd>
                        <h2 style="margin-bottom: 0px;">&lt;em&gt;双线性插值&lt;/em&gt;算法及实现.</h2>
                        <ul class="floatR">
                            <li class="time">2018年04月13日 00:00</li>
                        </ul><div class="summary">
                            &lt;em&gt;双线性插值&lt;/em&gt;算法及其实现,有源代码,感觉还不错,共享一下... &lt;em&gt;双线性插值&lt;/em&gt;算法及其实现,有源代码,感觉还不错,共享一下 综合评分:4 收藏(7)评论(53)举报 所需: 5...                        </div>


                        
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="https://download.csdn.net/download/sunboxinan/4339732" target="_blank" strategy="searchFromBaidu_14">
                    <dd>
                        <h2 style="margin-bottom: 0px;">&lt;em&gt;双线性插值&lt;/em&gt;算法的一种快速实现方式</h2>
                        <ul class="floatR">
                            <li class="time">2018年04月14日 00:00</li>
                        </ul><div class="summary">
                            2012-05-30 上传大小:263KB &lt;em&gt;双线性插值&lt;/em&gt;快速实现 在计算机图形运算中,常常要将浮点数转换为整数,例如在图像的光栅化阶段,就要执行大量的类型转换,以便将浮点数表示...                        </div>


                        
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics downloadElement" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a class="clearfix" href="https://download.csdn.net/download/zhaoshangnan123/8701067" target="_blank" strategy="BlogCommendFromQuerySearch_15">
                    <dd class="floatL">
                        <div class="summary">
                            <h2>matlab双线性插值法(超分辨率)</h2>
                            <div class="summary">
                                <ul>
                                    <li class="time">2015年05月14日 21:40</li>
                                    <li class="visited_num fileSize">847B</li>
                                    <li class="download_btn">下载</li>
                                </ul>
                            </div>
                        </div>
                    </dd>
                    <dt class="floatR"><img class="maxwidth" src="http://csdnimg.cn/release/download/old_static/images/minetype/unkonw.svg" alt="" title=""></dt>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="https://blog.csdn.net/weixin_37586247/article/details/76234115" target="_blank" strategy="BlogCommendFromQuerySearch_16">
                    <dd>
                        <h2 style="margin-bottom: 0px;">使用双线性插值法放大图像(matlab实现)</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="https://avatar.csdn.net/1/3/F/3_weixin_37586247.jpg" alt="weixin_37586247" title="weixin_37586247"></li>
                            <li class="user_name">weixin_37586247</li>
                            <li class="time">2017-07-28 11:03:23</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>355</span></li>
                        </ul><div class="summary">
                            点击打开链接                        </div>


                        
                    </dd>
                </a>
            </dl>
                                                    <dl id="_bdavy5a3hd"></dl><dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="https://blog.csdn.net/ZYTTAE/article/details/42710303" target="_blank" strategy="BlogCommendFromQuerySearch_17">
                    <dd>
                        <h2>图像处理中两种基本的插值算法(最邻近插值法和双线性内插法)</h2>
                        <div class="summary">
                            在图像的基本仿射变换中,经常会碰到经过旋转、缩放后灰度值如何赋值的问题。因为变换之后,图像的坐标位置有可能是小数,所以就需要插值算法来确定到底将该像素赋予哪个位置。
1、最邻近插值法(Nearest...                        </div>


                        <ul>
                            <li class="avatar_img"><img src="https://avatar.csdn.net/3/C/6/3_zyttae.jpg" alt="ZYTTAE" title="ZYTTAE"></li>
                            <li class="user_name">ZYTTAE</li>
                            <li class="time">2015-01-14 15:12:40</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>9570</span></li>
                        </ul>
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="https://blog.csdn.net/liyuan02/article/details/6750410" target="_blank" strategy="BlogCommendFromQuerySearch_18">
                    <dd>
                        <h2 style="margin-bottom: 0px;">插值算法在图像处理中的应用</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="https://avatar.csdn.net/1/9/F/3_liyuan02.jpg" alt="liyuan02" title="liyuan02"></li>
                            <li class="user_name">liyuan02</li>
                            <li class="time">2011-09-05 17:15:31</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>1713</span></li>
                        </ul><div class="summary">
                            插值(Interpolation),有时也称为“重置样本”,是在不生成像素的情况下增加图像像素大小的一种方法,在周围像素色彩的基础上用数学公式计算丢失像素的色彩。简单地点,插值是根据中心像素点的颜色参...                        </div>


                        
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="https://blog.csdn.net/qq_29058565/article/details/52744996" target="_blank" strategy="BlogCommendFromQuerySearch_19">
                    <dd>
                        <h2 style="margin-bottom: 0px;">图像缩放之双线性内插值法</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="https://avatar.csdn.net/6/7/2/3_qq_29058565.jpg" alt="qq_29058565" title="qq_29058565"></li>
                            <li class="user_name">qq_29058565</li>
                            <li class="time">2016-10-06 18:46:23</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>736</span></li>
                        </ul><div class="summary">
                            双线性内插值法缩放图像                        </div>


                        
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="https://blog.csdn.net/huang1024rui/article/details/46545329" target="_blank" strategy="BlogCommendFromQuerySearch_20">
                    <dd>
                        <h2 style="margin-bottom: 0px;">双线性插值(Matlab实现)</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="https://avatar.csdn.net/2/B/E/3_huang1024rui.jpg" alt="huang1024rui" title="huang1024rui"></li>
                            <li class="user_name">huang1024rui</li>
                            <li class="time">2015-06-18 10:52:11</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>11575</span></li>
                        </ul><div class="summary">
                            双线性插值(Matlab实现)




一、原理


最近用到插值算法,使用三次样条插值时仿真速度太慢,于是采用算法简单的线性插值。本篇主要介绍一下双线性插值的实现方法。


1. 线性插值
...                        </div>


                        
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics downloadElement" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a class="clearfix" href="https://download.csdn.net/download/Saviola_zfp/1431359" target="_blank" strategy="BlogCommendFromQuerySearch_22">
                    <dd class="floatL">
                        <div class="summary">
                            <h2>C# 双线性插值法放大图像</h2>
                            <div class="summary">
                                <ul>
                                    <li class="time">2009年06月23日 18:47</li>
                                    <li class="visited_num fileSize">37KB</li>
                                    <li class="download_btn">下载</li>
                                </ul>
                            </div>
                        </div>
                    </dd>
                    <dt class="floatR"><img class="maxwidth" src="http://csdnimg.cn/release/download/old_static/images/minetype/zip.svg" alt="" title=""></dt>
                </a>
            </dl>
                        </div>
  </main>
<aside>
    <div class="right_box user_info">
    <dl class="inf_bar clearfix">
        <dt class="csdn-tracking-statistics tracking-click" data-mod="popu_381">
                <a href="https://blog.csdn.net/lovexlsforever" target="_blank">
                    <img src="https://avatar.csdn.net/8/B/D/3_lovexlsforever.jpg" class="avatar_pic">
        </a>
      </dt><dd>
            <h3 class="csdn-tracking-statistics tracking-click" data-mod="popu_380"><a href="https://blog.csdn.net/lovexlsforever" target="_blank" id="uid">Tiramisu920</a></h3>
            <div class="medals" title="">
                      </div>
                        <span class="csdn-tracking-statistics tracking-click" data-mod="popu_379"><a class="btn btn-redborder-small  attented" id="span_add_follow" target="_self">已关注</a></span>
                    </dd>
    </dl>
    <div class="inf_number_box clearfix">
        <dl title="16">
            <dt>原创</dt>
            <dd>16</dd>
        </dl>
        <dl title="2">
            <dt>粉丝</dt>
            <dd id="fan">3</dd>
        </dl>
        <dl title="1">
            <dt>喜欢</dt>
            <dd>1</dd>
        </dl>
        <dl title="1">
          <dt>评论</dt>
          <dd>1</dd>
        </dl>
    </div>


</div>
<div class="interflow clearfix">
      <div class="grade gradeAndbadge gradewidths">
      <span>等级:</span>
      <div>
        <a href="https://blog.csdn.net/home/help.html#level" title="2级,点击查看等级说明" target="_blank">
          <img class="grade-img" src="https://csdnimg.cn/jifen/images/xunzhang/jianzhang/blog2.png" alt="2级,点击查看等级说明">
        </a>
      </div>
    </div>
    <div class="gradeAndbadge gradewidths" title="3319">
        <span>访问量:</span>
        <span class="num odd-overhidden">3319</span>
    </div>


    <div class="gradeAndbadge gradewidths" title="209">
      <span>积分:</span>
      <span class="num odd-overhidden">209</span>
    </div>
    <div class="gradeAndbadge gradewidths" title="366391">
        <span>排名:</span>
        <span class="num odd-overhidden">36万+</span>
    </div>


</div>
<script type="text/javascript">
  // 判断并设置用户名位置,没有博客专家与关注按钮时,用户名居中
  $medals_children = $('.medals').children().length;
  $span_add_follow = $('#span_add_follow').length;
  if($medals_children === 0 && $span_add_follow === 0){
    $('.inf_bar dd').css('vertical-align','10px')
  }
</script>          <div class="extension_other csdn-tracking-statistics tracking-click" data-mod="popu_389" style="position: relative;">
          <!--u3032528-->
        <div class="flashrecommend">
                        <script type="text/javascript" src="//cee1.iteye.com/bwocoltly.js"></script>
                    </div>
      <img class="append_mark_img" style="display:block;position:absolute;left:0;bottom:0;width:30px;height:16px" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAQCAYAAAABOs/SAAAABGdBTUEAALGPC/xhBQAAAhpJREFUOBHFVU2L2lAUHU0nExNHbRq1BkSrSFH8QBdu3QnuxYUr3bj2f/gHRPwrdmVdCLqxIK0KighqWz+mNVPaavtuhgtqnpnposyD5N53z7k57yX33RhKpdK7q2cYxmfQVCUfFU6n06/z+fwbvQWaTCYml8t5gBOJRKzZbFb19XJenIPhcNgaj8dfYZxlWSYWizkZhjFgDGyr1VqMRqMd+JlMRrbZbDd2u/3G4XBwTqeTBx8wGLvd7reiKPuH2cNdI+zz+W4FQbjudrtfkNjr9Vboo91sNr/A9/v9QjKZlFer1X2xWHxLclnIBx+5nU5n0Wg0FjgHqxGG4Hw+V9rt9lfw9YbRaDQUCoVgtVr9MB6P1d2TRYjRaFSq1+uf9HKpwnoJx5jL5eKazebM4/EIcAHmdrvNkiSZUqmU45g7HA6/zWaze4xphDmOY7bb7U8k6FmLxXItiiJ3zNnv938mk8mdLMvqQhBbLpc/dIXNZjM7nU6/Y4Ke7ff7d3AFAoFbUoQnxYd5h8PhCjg4R6vZMQiTQnnSjvEhpAmFB4OBpgABD4VCUrlcfo9ctBphcgx4eC1IeKqt1WofadxKpSLS4ifC5Ltw5Bsd1uu1elRoCZdiiUTiJQ2DyqfFT4SDwaCVnNnPNOJjMdKxqDs7bzz4HMP5T4Lneea8yyD5kvV6vTw5xwoNv4RpevW/ioLYJVE9TCNMW/X/iP0FJ9WyNfNE5tcAAAAASUVORK5CYII="></div>
            <div class="writings">
      <div class="public_signal clearfix">
        <h3>博主最新文章</h3>
        <a href="https://blog.csdn.net/lovexlsforever" target="_blank" class="more"><span>更多文章</span></a>
      </div>
        <ul class="inf_list clearfix csdn-tracking-statistics tracking-click" data-mod="popu_382">
                        <li class="clearfix">
                <a href="https://blog.csdn.net/lovexlsforever/article/details/79686952" target="_blank">different version pip install</a>
            </li>
                        <li class="clearfix">
                <a href="https://blog.csdn.net/lovexlsforever/article/details/79495313" target="_blank">anacoda,sublime-text3,opencv-python,tensorflow,pycharm安装和简单使用</a>
            </li>
                        <li class="clearfix">
                <a href="https://blog.csdn.net/lovexlsforever/article/details/79459506" target="_blank">window下的python安装插件</a>
            </li>
                        <li class="clearfix">
                <a href="https://blog.csdn.net/lovexlsforever/article/details/79413527" target="_blank">最好的const例子</a>
            </li>
                        <li class="clearfix">
                <a href="https://blog.csdn.net/lovexlsforever/article/details/79405464" target="_blank">Centos7 install matlab</a>
            </li>
                    </ul>
    </div>
                <div class="user-hotArticle sort ClassSort">
            <h3>文章分类</h3>
            <ul class="hotArticle-list sort-list ClassSort-list">
                                    <li class="clearfix">
                        <a href="https://blog.csdn.net/lovexlsforever/article/category/5624755" class="odd-overhidden floatL">生活类</a>
                        <div class="read list-left floatR"><span>28篇</span></div>
                    </li>
                            </ul>
            <div class="unfold-btn" style="display: none;">
              <span>展开</span><i class="icon iconfont icon-xiajiantou"></i>
            </div>
        </div>
    <!--    [StartShowSelfColumn]-->
    <!--    [EndShowSelfColumn]-->
            <div class="user-hotArticle sort timeSort">
          <h3>文章存档</h3>
          <ul class="hotArticle-list timeSort-list" style="height: 190px; overflow-y: hidden;">
                            <li class="clearfix">
                  <a href="https://blog.csdn.net/lovexlsforever/article/month/2018/03" class="odd-overhidden floatL">2018年3月</a>
                  <div class="read list-left floatR"><span>5篇</span></div>
                </li>
                            <li class="clearfix">
                  <a href="https://blog.csdn.net/lovexlsforever/article/month/2018/02" class="odd-overhidden floatL">2018年2月</a>
                  <div class="read list-left floatR"><span>3篇</span></div>
                </li>
                            <li class="clearfix">
                  <a href="https://blog.csdn.net/lovexlsforever/article/month/2017/12" class="odd-overhidden floatL">2017年12月</a>
                  <div class="read list-left floatR"><span>5篇</span></div>
                </li>
                            <li class="clearfix">
                  <a href="https://blog.csdn.net/lovexlsforever/article/month/2017/11" class="odd-overhidden floatL">2017年11月</a>
                  <div class="read list-left floatR"><span>4篇</span></div>
                </li>
                            <li class="clearfix">
                  <a href="https://blog.csdn.net/lovexlsforever/article/month/2017/10" class="odd-overhidden floatL">2017年10月</a>
                  <div class="read list-left floatR"><span>5篇</span></div>
                </li>
                            <li class="clearfix">
                  <a href="https://blog.csdn.net/lovexlsforever/article/month/2017/09" class="odd-overhidden floatL">2017年9月</a>
                  <div class="read list-left floatR"><span>6篇</span></div>
                </li>
                            <li class="clearfix">
                  <a href="https://blog.csdn.net/lovexlsforever/article/month/2015/03" class="odd-overhidden floatL">2015年3月</a>
                  <div class="read list-left floatR"><span>1篇</span></div>
                </li>
                      </ul>
          <div class="unfold-btn">
            <span>展开</span><i class="icon iconfont icon-xiajiantou"></i>
          </div>
        </div>
            <div class="user-hotArticle">
        <h3>博主热门文章</h3>
        <ul class="hotArticle-list csdn-tracking-statistics tracking-click" data-mod="popu_521">
<!--        [StartHotArticles]-->
                            <li>
                    <a href="https://blog.csdn.net/lovexlsforever/article/details/78037359" target="_blank">GithHub的安装、使用</a>
                    <div class="read list-left"><i class="icon iconfont icon-read"></i><span>630</span></div>
                </li>
                            <li>
                    <a href="https://blog.csdn.net/lovexlsforever/article/details/78392771" target="_blank">secureCRT安装步骤和破解,注册机</a>
                    <div class="read list-left"><i class="icon iconfont icon-read"></i><span>330</span></div>
                </li>
                            <li>
                    <a href="https://blog.csdn.net/lovexlsforever/article/details/78018694" target="_blank">虚拟机安装centos7</a>
                    <div class="read list-left"><i class="icon iconfont icon-read"></i><span>228</span></div>
                </li>
                            <li>
                    <a href="https://blog.csdn.net/lovexlsforever/article/details/78029044" target="_blank">CentOS7安装VMware Tools的方法、屏幕小问题</a>
                    <div class="read list-left"><i class="icon iconfont icon-read"></i><span>197</span></div>
                </li>
                            <li>
                    <a href="https://blog.csdn.net/lovexlsforever/article/details/78700436" target="_blank">ubuntu16.04下编译kvazaar</a>
                    <div class="read list-left"><i class="icon iconfont icon-read"></i><span>173</span></div>
                </li>
                            <li>
                    <a href="https://blog.csdn.net/lovexlsforever/article/details/44155811" target="_blank">理想</a>
                    <div class="read list-left"><i class="icon iconfont icon-read"></i><span>151</span></div>
                </li>
                            <li>
                    <a href="https://blog.csdn.net/lovexlsforever/article/details/78235148" target="_blank">QuartusII 13.1实验所见问题</a>
                    <div class="read list-left"><i class="icon iconfont icon-read"></i><span>149</span></div>
                </li>
                            <li>
                    <a href="https://blog.csdn.net/lovexlsforever/article/details/78678766" target="_blank">kvazaar在vs2013编译,HM在VS2013编译,ubuntu下安装quartusII</a>
                    <div class="read list-left"><i class="icon iconfont icon-read"></i><span>125</span></div>
                </li>
                            <li>
                    <a href="https://blog.csdn.net/lovexlsforever/article/details/78828082" target="_blank">要做的事情,python版本的切换命令</a>
                    <div class="read list-left"><i class="icon iconfont icon-read"></i><span>124</span></div>
                </li>
                            <li>
                    <a href="https://blog.csdn.net/lovexlsforever/article/details/78449716" target="_blank">压缩指令ubuntu</a>
                    <div class="read list-left"><i class="icon iconfont icon-read"></i><span>114</span></div>
                </li>
            <!--        [EndHotArticles]-->
        </ul>
    </div>
    
<!--    [startcustom]-->
    <!--    [endcustom]-->
  <div class="fixRight_box" style="height:256px">
    <div class="fixRight" style="position: relative; top: 0px; z-index: 1;">
                    <!--u3163270-->
                        <script type="text/javascript" src="//cee1.iteye.com/avneunkwb.js"></script>
                          <div class="persion_article"><div class="right_box footer_box csdn-tracking-statistics" data-mod="popu_475" data-dsm="post">        <h3 class="feed_new_tit"><span class="line"></span><span class="txt">联系我们</span></h3>        <div class="contact-box">        <div class="img-box"><img src="//csdnimg.cn/pubfooter/images/csdn_cs_qr.png" alt="客服"></div>        <div class="contact-info">        <h4>请扫描二维码联系客服</h4>        <p><svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path d="M2.167 2h11.666C14.478 2 15 2.576 15 3.286v9.428c0 .71-.522 1.286-1.167 1.286H2.167C1.522 14 1 13.424 1 12.714V3.286C1 2.576 1.522 2 2.167 2zm-.164 3v1L8 10l6-4V5L8 9 2.003 5z" fill="#B3B3B3" fill-rule="evenodd"></path></svg><a href="mailto:[email protected]" target="_blank"><span class="txt">[email protected]</span></a></p><p><svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path d="M14.999 13.355a.603.603 0 0 1-.609.645H1.61a.603.603 0 0 1-.609-.645l.139-1.47c.021-.355.25-.845.51-1.088 0 0 3.107-2.827 3.343-2.909 0 0-.029-2.46 1.2-2.46h3.635c1.112 0 1.202 2.469 1.202 2.469l3.32 2.9c.26.243.489.733.51 1.088l.139 1.47zM7 10a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2H7zm7.806-5.674c.105.135.191.384.19.554l-.003 2.811c0 .17-.133.26-.295.2l-2.462-.999a.478.478 0 0 1-.296-.416V5.445c0-2.07-7.878-2.225-7.878 0v1.21c0 .17-.135.352-.3.404L1.3 7.904c-.165.052-.3-.044-.3-.213V4.88c0-.17.086-.42.191-.554C1.191 4.326 2.131 2 8 2s6.807 2.326 6.807 2.326z" fill="#B3B3B3"></path></svg><span class="txt"> 400-660-0108</span></p>        <p><svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path d="M14.496 10.35c-.301-1.705-1.565-2.822-1.565-2.822.18-1.548-.481-1.823-.481-1.823C12.31.915 8.089.998 8 1 7.91.998 3.689.915 3.55 5.705c0 0-.662.275-.481 1.823 0 0-1.264 1.117-1.565 2.822 0 0-.16 2.882 1.445.353 0 0 .36.96 1.022 1.823 0 0-1.183.392-1.083 1.412 0 0-.04 1.136 2.527 1.058 0 0 1.805-.137 2.347-.882h.476c.542.745 2.347.882 2.347.882 2.566.078 2.527-1.058 2.527-1.058.1-1.02-1.083-1.412-1.083-1.412a7.986 7.986 0 0 0 1.022-1.823c1.604 2.529 1.445-.353 1.445-.353z" fill="#B3B3B3" fill-rule="evenodd"></path></svg><a href="javascript:void(0);" class="qqcustomer_s" target="_blank"><span class="txt">QQ客服</span></a>        <svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path d="M7.325 13.965a6.5 6.5 0 1 1 7.175-6.4C14.467 11.677 11.346 15 7.5 15c-.514 0-1.015-.06-1.498-.172.488-.178.922-.48 1.323-.863zM4 7.5a4 4 0 1 0 8 0 .5.5 0 1 0-1 0 3 3 0 1 1-6 0 .5.5 0 0 0-1 0z" fill="#B3B3B3" fill-rule="evenodd"></path></svg><a href="http://bbs.csdn.net/forums/Service" target="_blank"><span class="txt">客服论坛</span></a>        </p>        </div></div>        <div class="bg-gray">        <div class="feed_copyright">        <p><a class="right-dotte" href="//www.csdn.net/company/about.html" target="_blank">关于</a><a href="//www.csdn.net/company/recruit.html" target="_blank" class="right-dotte">招聘</a><a href="//www.csdn.net/company/marketing.html" target="_blank" class="right-dotte">广告服务</a>        <a href="//zn.baidu.com" target="_blank" class="footer_baidu">        <svg width="13" height="14" xmlns="http://www.w3.org/2000/svg"><path d="M8.392 7.013c1.014 1.454 2.753 2.8 2.753 2.8s1.303 1.017.47 2.98c-.833 1.962-3.876.942-3.876.942s-1.122-.36-2.424-.072c-1.303.291-2.426.181-2.426.181s-1.523.037-1.957-1.888c-.434-1.927 1.52-2.982 1.666-3.161.145-.183 1.159-.873 1.81-1.963.653-1.09 2.608-1.962 3.984.181zm1.23 5.706V9.346H8.64v2.534h-.937s-.3-.044-.356-.285V9.33l-.925.015v2.518s.042.627.925.855h2.277zm-3.685.013V7.951l-.896-.014v1.295H3.987s-1.054.086-1.422 1.28c-.129.798.114 1.266.156 1.368.043.099.383.682 1.238.852h1.978zm-2.433-1.45c-.087-.286.013-.613.057-.741.042-.128.228-.427.61-.54h.855v1.948h-.797s-.555-.029-.725-.668zm6.877-8.775c-.143.909-.865 2.108-1.99 1.962-1.121-.144-1.375-1.16-1.267-2.179C7.214 1.458 8.21.18 9.007.364c.796.18 1.52 1.235 1.374 2.143zm-4.09-.345c0 1.197-.68 2.164-1.52 2.164S3.25 3.36 3.25 2.162C3.25.967 3.932 0 4.77 0c.842 0 1.52.967 1.52 2.162zm4.854 2.09c1.34 0 1.701 1.309 1.701 1.743 0 .438.182 2.29-1.485 2.326-1.667.037-1.737-1.126-1.737-1.96 0-.874.179-2.11 1.52-2.11zm-7.93.581c.045.398.253 2.217-1.27 2.544C.427 7.704-.14 5.947.028 5.124c0 0 .18-1.78 1.412-1.89.98-.085 1.7.986 1.774 1.6z" fill="#999" fill-rule="evenodd"></path></svg>        <em> 百度</em></a></p>        <p class="fz12">©1999-2018 CSDN版权所有</p>        <p class="fz12"><a href="http://www.miibeian.gov.cn/" target="_blank" class="ml14">京ICP证09002463号</a></p>        </div>        <div class="allow-info-box">        <p><a href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001032100010" target="_blank"><span>经营性网站备案信息</span></a></p>        <p><a href="http://www.cyberpolice.cn/" target="_blank"><span>网络110报警服务</span></a></p>        <p><a href="http://www.12377.cn/" target="_blank"><span>中国互联网举报中心</span></a></p>        <p><a href="http://www.bjjubao.org/" target="_blank"><span>北京互联网违法和不良信息举报中心</span></a></p>        </div>        </div>        </div></div>
    </div>
  </div>
</aside>
</div>

猜你喜欢

转载自blog.csdn.net/qq_37577735/article/details/80041442