您的位置:首页 > 其它

双线性插值实现图像缩放

2013-10-25 22:09 686 查看
今天去一个公司笔试,考了一个图像缩放的算法,双线性插值,当时没搞出来呀,

回来写了个程序仿真,实现了这个功能。

 原理 ,参照百度百科(1)写的很详细。

对原图实现放大2*3倍,matlab代码仿真如下:

clear

img1=imread(lena.bmp');

img1=rgb2gray(img1);

img1=double(img1);

[row1,wide1]=size(img1);

 row2=row1*2;

 wide2=wide1*3;

 img2=zeros(row2,wide2);

 for y2=5:row2-5

      for x2=5:wide2-5;

           x=x2/3;

           y=y2/2;

           q11x=floor(x);

           q11y=ceil(y);

          

           q21x=ceil(x);

           q21y=ceil(y);

          

           q22x=ceil(x);

           q22y=floor(y);

          

           q12x=floor(x);

           q12y=floor(y);

          

           X2=ceil(x);% important,当出现如整数5 的时候,x2等于5,x1=4,也就是取当前的坐标和前面的一个坐标计算

           X1=ceil(x-1);

           Y2=ceil(y-1);%important

           Y1=ceil(y);

        

          R1=( X2-x) *img1(q11y,q11x)+(x- X1)*img1(q21y,q21x);

          R2=(X2-x) *img1(q12y,q12x)+(x- X1)*img1(q22y,q22x);

           fp=-( (Y2- y)*R1 + (y-Y1)*R2) ;

           img2(y2,x2)=ceil(fp);

      end

 end

 subplot(1,2,1);

 imshow(uint8(img1));

  subplot(1,2,2);

 imshow(uint8(img2));



 

本文链接 : http://write.blog.csdn.net/postedit/13049101
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息