📄 bilinear.m
字号:
function [Tmp]=bilinear(Img_in,W_set,H_set)
% bilinear
% Author: Zou Zhihuang
% Data: 2008.1.22
% Input
% Img -- Input Image
% W -- the width you want to set
% H -- the higth you want to set
% Output:
% Tmp - Result Image
[W_in,H_in,dim]=size(Img_in);
Tmp=uint8(zeros(W_set,H_set,dim));
w_scale=W_in/W_set;
h_scale=H_in/H_set;
for k=1:dim
for i=1:W_set
for j=1:H_set
x=i*w_scale;
y=j*h_scale;
if(x==floor(x)) & (y==floor(y)) %旧坐标为整数时
Tmp(i,j,k)=Img_in(int16(x),int16(y),k);
%[x,floor(x),i,j]
else
% if(floor(x)==0)|(floor(y)==0)
% Tmp(i,j,k)=Img_in(1,1,k);
% [i,j]
if(floor(x)==0)|(floor(y)==0) %added by zou
Tmp(i,j,k)=Img_in(ceil(x),ceil(y),k);
else
x11=double(Img_in(floor(x),floor(y),k));
x12=double(Img_in(floor(x),floor(y),k));
x21=double(Img_in(floor(x),floor(y),k));
x22=double(Img_in(floor(x),floor(y),k));
wx1=1-(x-floor(x));
wx2=x-floor(x);
wy1=1-(y-floor(y));
wy2=y-floor(y);
Tmp(i,j,k)=[wx1 wx2]*[x11 x12;x21 x22]*[wy1;wy2];
end
end
end
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -