利用MATLAB实现双线性插值

本文介绍了如何利用MATLAB进行双线性插值,重点在于理解数学原理和MATLAB代码实现。通过参考链接,读者能清晰地区分水平和垂直方向,理解图像高度和宽度的含义。提供MATLAB代码辅助理解。
摘要由CSDN通过智能技术生成

双线性插值,数学原理很简单,可以参看该链接,参考前注意区分水平和竖直方向,图像的height代表行方向,图像的width代表列方向。
线面给出MATLAB代码:

% 双线性插值
% 输入图像文件及放大率
% 输出根据放大率变化后的新图像
function bilinear_interpolation = bilinear_interpolation(filename,R)
tic
% 初始化,读入图像,图像数据为m*n*color
img = imread(filename);

% 变化后图像
[row,col,color] = size(img);    % 获得图像的行列数及色板数
row = round(row*R);     % 新图像行
col = round(col*R);     % 新图像列
%display([row,col,color]);
% 新图像初始化
% 使用class获得原图像的数据类型,使得新图像数据类型与原图像保持一致
img_new = zeros(row,col,color,class(img));

% 对新图像的行、列、色板赋值
x = 0;
for i = 1:row
    y = 0;
    u = (i-1)/R-floor((i-1)/R); %求取水平方向上的权重
    if u == 0
       x = x + 1;
    end
    for j = 1:col
        v 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值