• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

【图像处理】双三次插值(Bicubic interpolation)原理及matlab简易版代码 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

先简单写下。

双线性插值:缩放后图像矩阵(简称TI)像素坐标映射到原图像矩阵(简称OI)中得坐标点P(x,y),P点临近四个坐标点像素值的线性加权求和即P点像素值。

“双”指的图像为二维矩阵,则在x方向和y方向都线性加权求和,顺序无所谓。

双三次插值

以下为双三次插值的公式,其中s(x)为插值核。f(M)为对应缩放后矩阵坐标点的像素值。

关于s(x)公式我有疑问,有的博客上将x分为(|x|<=1,1<|x|<2,others),有的分为(|x|<1,1<=|x|<2,others),我暂时没查到有根据的正确的划分,如果哪位大神知道请告诉我下谢谢~

本篇文章内的公式和代码均以下图划分为主。 

 

双三次插值matlab简易版代码

        以下代码非常简洁,仅仅是将公式编码完成了最基本的计算,给大家做个参考,最终运行时间为23.200182 秒,可长了...

     (话说matlab自带的imresize方法进行双三次插值运行0.851554 秒 = =)

% Author: Dabao
% Time: 2019.03.28 16:01
 
    tic; % calculate running time
    
    % read original image I
    I = imread('/Users/apple/Downloads/IMG_3331.JPG');
    I = double(I);
    [oh,ow,od] = size(I);
    zmf = 2; %缩放因子
    
    % initial target image TI
    th = round(oh*zmf);
    tw = round(ow*zmf);
    TI = zeros(th,tw,od); %预分配内存提高计算速度
    
    % add original image with 2 rows and 2 cols
    % expand the border to prevent calculation overflow
    a = I(1,:,:); b = I(oh,:,:);
    temp_I = [a;a;I;b;b];
    c = temp_I(:,1,:); d = temp_I(:,ow,:);
    FI = [c,c,temp_I,d,d];
    
    % fill target image with new pixels
    for w = 1:tw
        j = floor(w/zmf)+2; v = rem(w,zmf)/zmf;
        for h = 1:th
            i = floor(h/zmf)+2;  u = rem(h,zmf)/zmf; 
            A = [s(u+1),s(u),s(u-1),s(u-2)];
            C = [s(v+1);s(v);s(v-1);s(v-2)];
            for d = 1:od   % image's 3 channels    
               B = FI(i-1:i+2,j-1:j+2,d);
               TI(h,w,d) = A*B*C;    
            end
        end
    end
    
    figure;
    imshow(uint8(TI));
    toc;
% 插值核函数
function w = s(wx)
    wx = abs(wx);
    if wx<1
        w = 1 - 2*wx^2 + wx^3;
    elseif wx>=1 && wx<2
        w = 4 - 8*wx + 5*wx^2 - wx^3;
    else
        w = 0;
    end

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
DelphiResult不起作用发布时间:2022-07-18
下一篇:
delphi带包编译详解(buildwithruntimepackage)发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap