双线性插值

博客提及边缘计算相关内容,给出理论知识参考链接,还介绍了程序情况,该程序与参考文章程序类似,但边界处理不同,参考文章采用扩成256*256的方法1,而此程序采用扩成257*257的方法2。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 理论知识参考: https://blog.youkuaiyun.com/huang1024rui/article/details/46545329

程序:这个程序于我参考的文章的程序差不多,不一样的地方在于边界处理,

 上边链接里采用方法1,扩成256*256,我的是方法2,扩成257*257

 

%%%%%双线性插值
clc
clear
%function [image1] = Bilinear_(image,x,y)
I=imread('E:\科研专用\散斑图平移\Image00.bmp');
[IH,IW,ID]=size(I);
zmf=2;
ZIH=round(IH*zmf);
ZIW=round(IW*zmf);
I1=zeros(ZIH,ZIW,ID);
IT=zeros(IH+1,IW+1,ID);%为什么+2
IT(1:IH,1:IW,:)=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,:);

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

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);
figure
imshow(I);
axis on
title(['原图像(大小: ',num2str(IH),'*',num2str(IW),'*',num2str(ID),')']);
figure
imshow(ZI);
axis on
title(['缩放后的图像(大小: ',num2str(ZIH),'*',num2str(ZIW),'*',num2str(ID)',')']);

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值