⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bilinear.m

📁 a matlab code for bilinear zooming. by: d m
💻 M
字号:
clear,clc,close all
I=imread('D:\desktop\second term\image processing\Folder1\Lena\Lena_gray_256.tif');
s2=[512,512]; %target size 
Inew=zeros(s2(1),s2(2)); %image after zooming
m=1;n=1;
A=[m n m*n 1;m n+1 m*(n+1) 1;m+1 n (m+1)*n 1; m+1 n+1 (m+1)*(n+1) 1]; %neighbor for findig coefficient a,b,c,d
r=size(Inew,1)/size(I,1);
rr=size(Inew,2)/size(I,2);
c=0;d=0;co=5;
for i=1:size(I,1)
    for j=1:size(I,2)
         m=i;n=j;
         A=[m n m*n 1;m n+1 m*(n+1) 1;m+1 n (m+1)*n 1; m+1 n+1 (m+1)*(n+1) 1];
        l=1:rr;
        k=1:r;
                if m+1<=size(I,1) & n+1<=size(I,2)
                    z=inv(A)*double([I(m,n);I(m,n+1);I(m+1,n);I(m+1,n+1)]);
                    Inew(l+d,k+c)=floor(z'*[(m+co);(n+co);(m+co)*(n+co);1]);
                end
                if  m+1>size(I,1) & n+1>size(I,2)
                    Inew(l+d,k+c)=I(i,j);
                end
                if m+1>size(I,1) & n+1<=size(I,2)
                    z=inv(A)*double([I(m,n);I(m,n+1);0;0]);
                    Inew(l+d,k+c)=floor(z'*[m;n;m*n;1]);
                end
                if n+1>size(I,2) & m+1<=size(I,1)
                    z=inv(A)*double([I(m,n);0;I(m+1,n);0]);
                    Inew(l+d,k+c)=floor(z'*[m;n;m*n;1]);
                end
        c=c+r;
    end
    d=d+rr;
    c=0;
end
 imshow(Inew,[])
 figure,imshow(I)
       

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -