精华内容
下载资源
问答
  • 能够实现对一幅图像的最近邻、双线性、双三次三种插值
  • 目录一、插值与图像缩放二、最近邻插值1、原理2、代码实现三、双线性插值1、原理2、代码实现 一、插值与图像缩放   首先举个例子说明插值过程,先看看matlab插值函数 interp() 吧: x = -2 : 1 : 2; y = -2 : 1 ...
  • 图像处理 双线性插值 matlab
  • 实验平台与数据本算法使用Matlab语言实现,实验平台为Windows 8 32位操作系统、4GB内存(可用为2.31GB)、Matlab2013b。数据1:大小为:256*256 的lena灰度图像,将使用实现的算法对其进行2倍放大操作,如下图1所示:...

    三、实现

    1.  实验平台与数据

    本算法使用Matlab语言实现,实验平台为Windows 8 32位操作系统、4GB内存(可用为2.31GB)、Matlab2013b。

    数据1: 大小为:256*256 的lena灰度图像,将使用实现的算法对其进行2倍放大操作,如下图1所示:

    ac7d1f2beb41914ff7468d847bb05fb6.png

    图1 灰度图像lena.png

    数据2:大小为:670*502 的彩色RGB图像,将使用实现的算法对其进行2倍缩小操作,如下图1所示:

    f49c4a778c7a0c760dd09613962b9054.png

    图2彩色RGB图像he.jpeg

    2.  实验程序源代码

    imblizoom.m文件源码

    function [ ZI ] = imblizoom( I,zmf )

    %----------------------双线性插值法缩放矩阵或图像---------------------------

    % Input:

    %       I:图像文件名或矩阵(整数值(0~255))

    %       zmf:缩放因子,即缩放的倍数

    % Output:

    %缩放后的图像矩阵ZI

    % Usage:

    %       ZI = SSELMHSIC('ImageFileName',zmf)

    %对图像I进行zmf倍的缩放并显示

    %    Or:

    %       ZI = SSELMHSIC(I,zmf)

    %对矩阵I进行zmf倍的缩放并显示

    %    ...

    %-------------------------------------------------------------------

    %%%%    Authors:   Zhi Liu

    %%%%    XiDian University Student

    %%%%    EMAIL:     zhiliu.mind@gmail.com

    %%%%    DATE:      16-12-2013

    %% Step1对数据进行预处理

    if ~exist('I','var') || isempty(I)

    error('输入图像I未定义或为空!');

    end

    if ~exist('zmf','var') || isempty(zmf) || numel(zmf) ~= 1

    error('位移矢量zmf未定义或为空或zmf中的元素超过2!');

    end

    if isstr(I)

    [I,M] = imread(I);

    end

    if zmf <= 0

    error('缩放倍数zmf的值应该大于0!');

    end

    %% Step2通过原始图像和缩放因子得到新图像的大小,并创建新图像。

    [IH,IW,ID] = size(I);

    ZIH = round(IH*zmf); %计算缩放后的图像高度,最近取整

    ZIW = round(IW*zmf); %计算缩放后的图像宽度,最近取整

    ZI = zeros(ZIH,ZIW,ID); %创建新图像

    %% Step3扩展矩阵I边缘

    IT = zeros(IH+2,IW+2,ID);

    IT(2:IH+1,2:IW+1,:) = I;

    IT(1,2:IW+1,:)=I(1,:,:);IT(IH+2,2:IW+1,:)=I(IH,:,:);

    IT(2:IH+1,1,:)=I(:,1,:);IT(2:IH+1,IW+2,:)=I(:,IW,:);

    IT(1,1,:) = I(1,1,:);IT(1,IW+2,:) = I(1,IW,:);

    IT(IH+2,1,:) = I(IH,1,:);IT(IH+2,IW+2,:) = I(IH,IW,:);

    %% Step4由新图像的某个像素(zi,zj)映射到原始图像(ii,jj)处,并插值。

    for zj = 1:ZIW         %对图像进行按列逐元素扫描

    for zi = 1:ZIH

    ii = (zi-1)/zmf; jj = (zj-1)/zmf;

    i = floor(ii); j = floor(jj); %向下取整

    u = ii - i; v = jj - j;

    i = i + 1; j = j + 1;

    ZI(zi,zj,:) = (1-u)*(1-v)*IT(i,j,:) +(1-u)*v*IT(i,j+1,:)...

    + u*(1-v)*IT(i+1,j,:) +u*v*IT(i+1,j+1,:);

    end

    end

    ZI = uint8(ZI);

    %%以图像的形式显示同现矩阵P

    figure

    imshow(I,M);

    axis on

    title(['原图像(大小:',num2str(IH),'*',num2str(IW),'*',num2str(ID),')']);

    figure

    imshow(ZI,M);

    axis on

    title(['缩放后的图像(大小:',num2str(ZIH),'*',num2str(ZIW),'*',num2str(ID)',')']);

    end

    3.  实验结果

    1) 数据1

    在命令窗口输入imblizoom('lena.png', 2);回车后结果如下图3和下图4所示:

    6b5d11d4d379c289059025fb14ec8c9b.png

    图3 lena.png的运行结果1(原图)

    ab5e885d38b5e116fbfad580dac62a1c.png

    图4 lena.png的运行结果2(放大2倍后的图)

    2)数据2

    ec37c62c37878dc3d07da4eca809f28b.png

    图5 he.jpeg运行结果1(原图)

    55a41dc19dd72d341fa48f559237d587.png

    图6 he.jpeg运行结果2(缩小2倍后的图像)

    由图3~图6可知,程序正确无误,放大缩小后的效果都很好。程序的用法及其它功能,请查看代码注释。

    展开全文
  • 基于matlab双线插值程序,很适合新手学习
  • 数字图像处理:最邻近、双线性、双三次插值MATLAB实现。 MATLAB version = 8.1.0.604 (R2013a)
  • matlab开发-图像处理使用双线性插值缩放动画。本文采用双线性插值法对图像进行正整数因子缩放。
  • 能够实现对一幅图像的最近邻、双线性、双三次三种插值
  • 函数的第一个参数为灰度图的文件路径,第二个参数和第三个参数为放缩后的h和w。运行函数即可查看结果。
  • 双线性插值计算公式:f(i+u,j+v) = (1-u)(1-v)f(i,j)+u(1-v)f(i+1,j)+(1-u)vf(i,j+1)+uvf(i+1,j+1)这个公式表明了如何利用矩阵中的四个像素值计算新的像素值,这些新的像素值就组成了放大后的图像。下图是如何将3x3...

    20180920190140675185.png

    双线性插值计算公式:

    f(i+u,j+v) = (1-u)(1-v)f(i,j)+u(1-v)f(i+1,j)+(1-u)vf(i,j+1)+uvf(i+1,j+1)

    这个公式表明了如何利用矩阵中的四个像素值计算新的像素值,这些新的像素值就组成了放大后的图像。

    下图是如何将3x3的图像放大为4x4的图像:

    20180920190140956446.png

    原图像表示为3x3的矩阵(像素值处在黑线的交叉点上),如何计算4x4矩阵的值呢?(像素值处在红色虚线交叉点及红线与黑线的交点上)

    比如新图像B的第一列与原图像A的第一列的对应关系是:

    B(1,1) = A(1,1)

    B(1,2) = A(1,1.66667)

    B(1,3) = A(1,2.33334)

    B(1,4) = A(1,3.00001)

    用原图像A的值就能计算出放大后B的值,是不是很神奇?

    实际上可以这样认为:双线性插值就是把放大后的图像再压缩到原来图像的尺寸大小,计算原图像中虚拟的像素值,等同于计算放大后图像的像素值,

    对于本例来说,B图像的步长相当于A图像步长的(3-1)/(4-1)=0.66667倍。下面我们就可以利用这个比率来对应B中像素位置与A中虚拟像素位置的关系。

    B(1,1) = A(1,1)                    (1-1)*0.66667+1=1

    B(1,2) = A(1,1.66667)         (2-1)*0.66667+1=1.66667

    B(1,3) = A(1,2.33334)         (3-1)*0.66667+1=2.33334

    B(1,4) = A(1,3.00001)         (4-1)*0.66667+1=3.00001

    根据上面的对应关系,我们就可以用代码实现了。

    现在还有一个问题:

    我们计算虚拟像素值是需要周围四个原像素值,比如上列中的(下图中红圈圈住的部分)

    A(1,3) = (1-0)(1-0)A(1,3) + (1-0)0A(1,4) + 0(1-0)A(2,3) + 00A(2,4)

    显然这里的A(1,4)和A(2,4)是无法索引到得,因为原图像是3x3的矩阵。

    为了解决这个问题,在A的最后一行,与最后一列分别加上0,这样A就变成了4x4的矩阵。

    20180920190141209386.png

    图示中黑色虚线是添加的0行0列,红色斜箭头把需要用到扩展A矩阵的虚拟像素点位置都标了出来。

    代码实现:

    主程序代码:

    clear ; close all;clc

    image= imread(‘bird.png‘);%载入图像的值

    r= image(:,:,1);%由于真彩图是红蓝绿三个像素的叠加

    g= image(:,:,2);%这里把r,g,b分离出来单独调用函数计算

    b= image(:,:,3);%计算完成后再进行组装

    %这里需要手动设置放大的倍数

    w= 4;%w放大的是竖直方向

    l= 4;%l放大的是水平方向

    r= extenRGB(r,w,l);%调用函数计算放大后的r值

    g= extenRGB(g,w,l);%调用函数计算放大后的g值

    b= extenRGB(b,w,l);%调用函数计算放大后的b值

    %下面把计算完成后的rgb再组装起来

    outRGB(:,:,1) = r;outRGB(:,:,2) = g;outRGB(:,:,3) = b;outRGB= uint8(outRGB);%格式转换,否则无法显示

    imshow(outRGB);%显示放大后的图像

    主程序调用的函数:

    %像素放大计算函数 extenRGB()

    function Output=extenRGB(A,w,l)%A矩阵分别代表r,g,b矩阵

    [m,n]= size(A); %读取A的行和列

    A= [A;zeros(1,n)]; %在A的最后一行加入两行0

    A= [A zeros(m+1,1)]; %在A的最后一列加入两列0%这样A就变成(m+1)x(n+1)的矩阵,这是为了解决索引A矩阵时的边界溢出问题

    ini_u= (m-1)/(w*m-1); %步长比,如果把原来的一步A(1,1)到A(2,1)看做1,那么计算放大后的

    ini_v= (n-1)/(l*n-1); %图像B(2,1)相当于计算A(1+ini_u,1),即每步相当于加1

    Output= zeros(w*m,l*n); %初始化输出矩阵for j = 1:l*n; %左边两个语句的功能是:z_u,z_v向左取整,u,v取小数,原理如下

    z_v= floor((j-1)*ini_v+1); %比如A为3x3的矩阵,要放大为Output是4x4大小,即放大了4/3倍,

    v= (j-1)*ini_v+1 - z_v; %新的一步的距离相当于原来的(3-1)/(4-1)=0.66667

    for i = 1:w*m; %Output(1,1) = A(1,1) %(1-1)*0.66667+1=1z_u= floor((i-1)*ini_u+1); %Output(1,2) = A(1,1.66667) %(2-1)*0.66667+1=1.66667u= (i-1)*ini_u+1 - z_u; %Output(1,3) = A(1,2.33334) %(3-1)*0.66667+1=2.33334

    %Output(1,4) = A(1,3.00001) %(4-1)*0.66667+1=3.00001

    %===================下面是双线性插值的代码实现================================Output(i,j)= (1 - u)*(1 - v)*A(z_u, z_v ) +...

    (1 - u)* v *A(z_u, z_v + 1) +...

    u*(1 - v)*A(z_u + 1, z_v ) +...

    u* v *A(z_u + 1, z_v + 1);

    end

    end

    展开全文
  • 在介绍双线性插值之前,先讲一下线性插值:已知数据(x0,y0),要计算[x0,x1]区间内某一位置x在直线上的y值:上面这个比较好理解,仔细看就是用x和x0,x1的距离作为一个权重,用于y0和y1的加权。双线性插值本质就是在...

    在介绍双线性插值之前,先讲一下线性插值:已知数据(x0,y0),要计算[x0,x1]区间内某一位置x在直线上的y值:

    a4c26d1e5885305701be709a3d33442f.png

    上面这个比较好理解,仔细看就是用x和x0,x1的距离作为一个权重,用于y0和y1的加权。双线性插值本质就是在两个方向上做线性插值。

    接下来介绍双线性插值,假设源图像大小为m*n,目标图像为a*b。那么两幅图像的边长比为:m/a和n/b。在程序设计时要用浮点型来保存。则目标图像的第(i,j)个像素点可以通过边长比回溯到源图像。其对应坐标为(i*m/a,j*n/b);

    显然,这个坐标不是整数,而非整数坐标在图像这种离散数据类型上无法使用。所以,双线性插值通过取得距离这个坐标最近的四个像素点来计算该点的灰度值。例如:计算所得对应坐标是(1.2,2.6),那么醉经的四个像素为(1,2),(1,3),(2,2),(2,4)。

    若图像为灰度图像,那么(i,j)点的灰度值可以通过以下公式计算:

    f(i,j)=w1*p1+w2*p2+w3*p3+w4*p4; 公式(1-1)

    其中,pi(i=1,2,3,4)为最近的四个像素点,wi(i=1,2,3,4)为各点相应权值,在下文中会介绍如何计算权值。

    在上面中介绍了线性插值的数学原理,这里介绍下双线性插值的数学原理:(引用维基百科定义)

    双线性插值,又称为双线性内插。在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值。

    假如我们想得到未知函数 a4c26d1e5885305701be709a3d33442f.png 在点 a4c26d1e5885305701be709a3d33442f.png 的值,假设我们已知函数 a4c26d1e5885305701be709a3d33442f.png 在 a4c26d1e5885305701be709a3d33442f.pnga4c26d1e5885305701be709a3d33442f.pnga4c26d1e5885305701be709a3d33442f.png,

    及 a4c26d1e5885305701be709a3d33442f.png 四个点的值。

    a4c26d1e5885305701be709a3d33442f.png

    首先在 x 方向进行线性插值,得到

    a4c26d1e5885305701be709a3d33442f.png

    a4c26d1e5885305701be709a3d33442f.png

    然后在 y 方向进行线性插值,得到

    a4c26d1e5885305701be709a3d33442f.png

    这样就得到所要的结果 a4c26d1e5885305701be709a3d33442f.png,

    a4c26d1e5885305701be709a3d33442f.png

    a4c26d1e5885305701be709a3d33442f.png

    如果选择一个坐标系统使得 a4c26d1e5885305701be709a3d33442f.png 的四个已知点坐标分别为

    (0, 0)、(0, 1)、(1, 0) 和 (1, 1),那么插值公式就可以化简为

    a4c26d1e5885305701be709a3d33442f.png

    合并有关项,f(x,y)=(f(0,0)(1-x)+f(1,0)x)

    (1-y)+(f(0,1)(1-x)+f(1,1)x)y 公式(1-2)

    这个时候就解释了公式(1-1)中的四个权重值:即(1-x)*(1-y)表示w1,x*(1-y)表示w2,同理w3,w4,。例如当坐标点为(0.75,0.75)时,明显该点更加靠近(1,1)点,所以(1,1)所起的作用更大一些。从权值w4

    = x*y = 0.75 * 0.75就可以体现出来,而(0.75,0.75)离(0,0)最远。所以起作用就小一些,从权值w1 =

    (1-x)*(1-y) = (1-0.75)(1-0.75)就可以体现出来。

    或者用矩阵运算表示为

    a4c26d1e5885305701be709a3d33442f.png

    这种插值方法的结果通常不是线性的,线性插值的结果与插值的顺序无关。首先进行 y 方向的插值,然后进行 x 方向的插值,所得到的结果是一样的。

    存在问题:

    (1)当通过上述算法求解时,所得结果和matlab、openCV对应的resize()函数得到的结果完全不一样。

    那这个究竟是怎么回事呢?

    其实答案很简单,就是坐标系的选择问题,或者说源图像和目标图像之间的对应问题。

    按照网上一些博客上写的,源图像和目标图像的原点(0,0)均选择左上角,然后根据插值公式计算目标图像每点像素,假设你需要将一幅5x5的图像缩小成3x3,那么源图像和目标图像各个像素之间的对应关系如下:

    a4c26d1e5885305701be709a3d33442f.png

    只画了一行,用做示意,从图中可以很明显的看到,如果选择右上角为原点(0,0),那么最右边和最下边的像素实际上并没有参与计算,而且目标图像的每个像素点计算出的灰度值也相对于源图像偏左偏上。

    那么,让坐标加1或者选择右下角为原点怎么样呢?很不幸,还是一样的效果,不过这次得到的图像将偏右偏下。

    最好的方法就是,两个图像的几何中心重合,并且目标图像的每个像素之间都是等间隔的,并且都和两边有一定的边距,这也是matlab和openCV的做法。如下图:

    a4c26d1e5885305701be709a3d33442f.png

    如果你不懂我上面说的什么,没关系,只要在计算对应坐标的时候改为以下公式即可,

    int

    x=(i+0.5)*m/a-0.5

    int

    y=(j+0.5)*n/b-0.5

    代替

    int

    x=i*m/a

    int

    y=j*n/b

    这样就可以得到理想的结果了。

    (2)考虑到图像的特殊性,他的像素值的计算结果需要落在0到255之间,最多只有256种结果,由上式可以看出,一般情况下,计算出的f(x,y)是个浮点数,我们还需要对该浮点数进行取整。因此,我们可以考虑将该过程中的所有类似于1-x、1-y的变量放大合适的倍数,得到对应的整数,最后再除以一个合适的整数作为插值的结果。

    如何取这个合适的放大倍数呢,要从三个方面考虑,第一:精度问题,如果这个数取得过小,那么经过计算后可能会导致结果出现较大的误差。第二,这个数不能太大,太大会导致计算过程超过长整形所能表达的范围。第三:速度考虑。假如放大倍数取为12,那么算式在最后的结果中应该需要除以12*12=144,但是如果取为16,则最后的除数为16*16=256,这个数字好,我们可以用右移来实现,而右移要比普通的整除快多了。

    综合考虑上述三条,我们选择2048这个数比较合适。

    参考代码:

    NormalText Code

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    72

    73

    74

    75

    76

    77

    78

    79

    80

    81

    #include #include

    #include

    #include

    using namespace cv;

    using namespace std;

    int main()

    {

    //读入图片,注意图片路径 Mat srcimage=imread("F:\\Matlab\\pictures\\Three.jpg"); cvtColor(srcimage,srcimage,CV_BGR2GRAY);

    Mat dstimage(Size(200,200),srcimage.type(),Scalar(0));

    //图片读入成功与否判定 if(!srcimage.data || !dstimage.data) { cout<

    imshow("srcImage",srcimage);

    float scaleX = 1.0*srcimage.cols/dstimage.cols;

    float scaleY = 1.0*srcimage.rows/dstimage.rows;

    float srcX,srcY;

    int indexX,indexXs,indexY,indexYs,index,indexXss,indexYss;

    int pixelOne,pixelTwo,pixelThree,pixelFour; //对应四个像素点灰度值

    for (int j=0;j

    {

    srcX = (j+0.5)*scaleX - 0.5;

    indexX = (int)srcX; //向下取整; indexXs = (srcX - indexX)*2048; //对应公式(1-2)中的x

    indexXss = 2048 - indexXs; //对应公式(1-2)中的1-x

    for (int i=0;i

    {

    展开全文
  • matlab 双线性插值简单实现代码

    千次阅读 2019-04-28 16:39:04
    clear clc close X=linspace(-pi,pi,10); Y=linspace(-2pi,2pi,10); [xx,yy]=meshgrid(X,Y); zz=1+sin(2xx)+sin(2yy); [r,c]=size(zz); fig=figure(); set(fig,‘color’,‘white’) ...xlabel(‘x’)...

    clear
    clc
    close
    X=linspace(-pi,pi,10);
    Y=linspace(-2pi,2pi,10);
    [xx,yy]=meshgrid(X,Y);
    zz=1+sin(2xx)+sin(2yy);
    [r,c]=size(zz);

    fig=figure();
    set(fig,‘color’,‘white’)
    set(gca,‘FontSize’,18)
    xlabel(‘x’)
    ylabel(‘y’)
    zlabel(‘z’)
    hold on
    grid on

    for idx=1:r
    for jdx=1:c
    plot3(xx(idx,jdx),yy(idx,jdx),zz(idx,jdx),‘b*’,‘MarkerSize’,10)
    end
    end

    xstar=-2;
    ystar=1.5;
    locx=find(xstar<X,1);
    locy=find(ystar<Y,1);

    x0=X(locx-1);
    x1=X(locx);
    y0=X(locy-1);
    y1=X(locy);

    z00=zz(locx-1,locy-1);
    z10=zz(locx,locy-1);
    z01=zz(locx-1,locy);
    z11=zz(locx,locy);

    plot3(x0,y0,z00,‘gs’,‘MarkerSize’,10)
    plot3(x1,y0,z10,‘gs’,‘MarkerSize’,10)
    plot3(x0,y1,z01,‘gs’,‘MarkerSize’,10)
    plot3(x1,y1,z11,‘gs’,‘MarkerSize’,10)

    zU=z01+(z11-z01)/(x1-x0)(xstar-x0);
    zL=z00+(z10-z00)/(x1-x0)
    (xstar-x0);

    plot3(xstar,y0,zL,‘r*’,‘MarkerSize’,10)
    plot3(xstar,y1,zU,‘r*’,‘Markersize’,10)

    zstar=zL+(zU-zL)/(y1-y0)*(ystar-y0);
    plot3(xstar,ystar,zstar,‘k’,‘MarkerSize’,10)

    展开全文
  • 双线性插值算法详解并用matlab实现

    万次阅读 多人点赞 2018-05-22 14:51:59
    双线性插值法又称为二次线性插值法。在传统的插值算法中,它的插值效果比nearest插值法要好的多,但是速度上也必然会慢很多,比bicubic(二次立方法)效果要差, 但速度上要优于bicubic。 它主要思想就是利用某像.....
  • 最近邻、双三次、双线性插值,最近邻插值法双线性插值法,matlab源码.zip
  • 这是数字图像处理实验内容,老师规定用双线性插值法进行放大缩小,不过双线性插值法也太难了吧!!!
  • 基于双线性内插的图像重采样,程序使用matlab编写,可对原始图像做任意方式的分辨率变换。 在图像的放大和缩小的过程中,需要计算新图像像素点在原图的位置,如果计算的位置不是整数,就需要用到图像的内插,我们...
  • 超分辨率插值法可分为最近邻插值、双线性插值、双三次插值,本代码主要介绍双线性插值方法和双三次插值方法。运行时代码中图像路径改为自己的。
  • MATLAB 灰度重采样--双线性插值法

    千次阅读 2020-10-17 16:58:49
    MATLAB 灰度重采样–双线性插值法 本文主要是借鉴,博客园jianguo_wang老师的文章,总结的自我笔记。为的是方便自己以后查看,仅此而已。十分感谢! 重新取样将会在缩放图片时更改图像数据的数量。当缩减像素取样...
  • 实现一个图像缩放函数,可以对输入图像进行任意倍数的缩放...采用双线性插值进行重采样; X,Y方向的缩放倍数参函数参数的形式传入; 可以只考虑输入图像为3通道,8位深度的情况; 不能调用图像处理库的缩放函数来完成;
  • 试采用双线性插值对一幅图像进行放大,kx=2.3,ky=1.6,图像如下,根据原理设计,不要采用MATLAB封装好的函数。
  • 以下为双线性插值算法matlab实现的简单总结,以便之后复习。 Bilinear interpolation is a more important interpolation method, especially in the field of digital image processing. Now I introduce the ...
  • 一、实验目的  1、熟悉并掌握MATLAB工具的使用...2、对图像执行放大、缩小及旋转操作,分别采用最近邻插值双线性插值及双三次插值方法实现,要求根据算法自己编写代码实现,并分析三种方法的优缺点。 (二)、相关知
  • [MATLAB] 图像的插值算法3:双线性插值

    千次阅读 多人点赞 2019-01-29 22:39:49
    双线性插值算法的优势更加明显,相较于最近邻插值有效降低了锯齿程度,图像精细程度更高,虽然计算的时间和复杂程度比最近邻插值更高,但在目前的计算力下,双线性插值算法仍然是被最多选择的算法。 –注:本文为...
  • % 图像缩放变换 双线性插值 % 输入: % img 灰白图像(彩色要多一个color维度或转化为灰度图) % s_x x方向上的比例系数 % s_y y方向上的比例系数 % 输出: % 缩放后的新图像 %% 双线性插值注意点: % 双线性插值...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,014
精华内容 405
关键字:

双线性插值法matlab

matlab 订阅