双线性插值,是一种比较重要的插值方法,尤其在数字图像处理领域。本篇博文分为三个部分:一是双线性插值的算法推导,二是双线性插值的算法实现,三是算法的运行结果。

一 双线性插值的算法推导

二 代码实现(matlab)

function [out] = bilinearInterpolation(im, out_dims)in_rows = size(im,1);in_cols = size(im,2);out_rows = out_dims(1);out_cols = out_dims(2);S_R = in_rows / out_rows;S_C = in_cols / out_cols;[cf, rf] = meshgrid(1 : out_cols, 1 : out_rows);rf = rf * S_R;cf = cf * S_C;r = floor(rf);c = floor(cf);r(r < 1) = 1;c(c < 1) = 1;r(r > in_rows - 1) = in_rows - 1;c(c > in_cols - 1) = in_cols - 1;delta_R = rf - r;delta_C = cf - c;in1_ind = sub2ind([in_rows, in_cols], r, c);in2_ind = sub2ind([in_rows, in_cols], r+1,c);in3_ind = sub2ind([in_rows, in_cols], r, c+1);in4_ind = sub2ind([in_rows, in_cols], r+1, c+1);       out = zeros(out_rows, out_cols, size(im, 3));out = cast(out, class(im)); for idx = 1 : size(im, 3)chan = double(im(:,:,idx)); %// Get i'th channel%// Interpolate the channeltmp = chan(in1_ind).*(1 - delta_R).*(1 - delta_C) + ...chan(in2_ind).*(delta_R).*(1 - delta_C) + ...chan(in3_ind).*(1 - delta_R).*(delta_C) + ...chan(in4_ind).*(delta_R).*(delta_C);out(:,:,idx) = cast(tmp, class(im));end

三 双线性插值运行结果

>>I = imread('lena.jpg');
>> figure,imshow(I)
>> S = bilinearInterpolation(I,[1000,1000]);
>> figure,imshow(S)

双线性插值算法推导及代码实现相关推荐

  1. python皮同_Python OpenCV 图像的双线性插值算法,全网最细致的算法说明_橡皮擦,一个逗趣的互联网高级网虫-CSDN博客...

    原文作者:梦想橡皮擦 原文标题:Python OpenCV 图像的双线性插值算法,全网最细致的算法说明 发布时间:2021-02-17 20:55:32 Python OpenCV 365 天学习计划 ...

  2. 双线性插值算法ARM NEON优化

    C语言版本双线性插值算法 inline double bilinear_interp(double x, double y, double v11, double v12,double v21, do ...

  3. Opencv--线性及双线性插值算法

    线性插值 先讲一下线性插值:已知数据 (x0, y0) 与 (x1, y1),要计算 [x0, x1] 区间内某一位置 x 在直线上的y值(反过来也是一样,略): y−y0x−x0=y1−y0x1−x ...

  4. 视频图像处理基础知识0(双线性插值算法进行图像缩放)【转】

    转自:http://blog.csdn.net/times_poem/article/details/51395781 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 双线性插 ...

  5. 双线性插值算法实现和opencv、matlab结果不一致问题

    最近在编程时用到了双线性插值算法,对图像进行缩放.网上有很多这方面的资料,介绍的也算明白.但是,这些文章只介绍了算法,并没有具体说怎么实现以及怎么实现最好,举个例子,你可以按照网上文章的算法自己写一个 ...

  6. 图像的放大:双线性插值算法(C++实现)

    图像的放大本质上就是增加像素点,目前常用的传统方法是内插法,代表算法有最临近点插值算法.双线性插值算法和双三次插值法,这些算法都是基于相邻像素点的像素值计算所要增加的像素点的像素值,因而在放大时会有失 ...

  7. 数字图像处理(十三)图像放大及双线性插值算法

    导言 图像放大是日常学习中经常要用到的两个算法,我们首先讨论缩放的流程以及放大时如何优化双线性插值算法. 采用国际标准测试图像Lena,为了方便,我们将读入的彩色图转为灰度图进行缩放. 图像放大 和图 ...

  8. MSCKF理论推导与代码解析

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 在SLAM后端中,主要有两种主流方法用于优化:基于滤波的方法和基于非线性的方法.基于滤波的方法主要有M ...

  9. 双线性插值算法的详细总结

    原文出处:http://blog.csdn.net/xjz18298268521/article/details/51220576 最近在做视频拼接的项目,里面用到了图像的单应性矩阵变换,在最后的图像 ...

最新文章

  1. python在工厂中的应用_什么是工厂函数?Python 中工厂函数怎么理解?
  2. 2018年机器学习趋势与Apache Kafka生态系统相结合
  3. Overload重載和Override重写的区别。Overloaded的方法是否可以改变返回值的类型?
  4. 数据库高级知识——查询截取分析(二)
  5. mac wmware 无网络_无线网络中常用的技术名词
  6. linux怎样进入src目录,Linux配置目录
  7. mybatis-plus中like的使用说明
  8. vmware您无权输入许可证秘钥
  9. 安装xDroid一直提示无法执行二进制文件:可执行文件格式错误,怎么办
  10. arduino继电器控制风扇_Arduino 笔记 - Lab21 使用继电器控制12V风扇
  11. 干货|TPM管理系列之六源改善
  12. 在pfSense上使用pfBlockerNG(DNSBL)来阻止广告
  13. max3490esa_MAX1661EUB-T_maxim芯片后缀tg16是什么意思
  14. 局域网(LAN)端口与广域网(WAN/外网)端口映射——实现让局域网机器在外网做服务器...
  15. 闲谈“个人核心竞争力”与“危机感”
  16. QQ盗号软件后门分析与反击
  17. 快速部署边缘计算,需要考虑哪些问题?
  18. 如何关闭surface外置键盘触摸板
  19. 计算机课题研究会议记录,(课题研究工作会议记录.doc
  20. 带你详解B/S和C/S系统架构分析

热门文章

  1. SettingsProvider简单分析
  2. springboot2+junit5+MockMvc(Mockito)实现对Controller的测试,配置都有,很详细了。
  3. Baltur两级燃气燃烧器BTG 3,6 P 50-60Hz
  4. # 工欲善其事必先利其器,让你的idea“飞”起来
  5. 【四二学堂】WeGame导致电脑蓝屏!!刚开始怀疑是他搞的鬼,现在发现出现问题的不止我一个....
  6. QT学习-----按钮弹起效果的实现
  7. 怎么打开avi文件文件损坏_什么是AVI文件(以及如何打开一个文件)?
  8. 可汉学院python_A可汗学院-统计学python实现1-10
  9. 如何让你的 Python 代码在腾讯云 Linux 中一直运行着
  10. java基于接口的动态代理