matlab双线性插值双三次插值对CUFED5进行处理
本文是摘抄与总结,仅供自己学习和日后查阅使用。
可以自己写一个双线性插值函数,
-------------------------------------------------------------------
function outputimg = my_imresize(A,n)
% A 是图像矩阵,n是放缩的倍数
% 返回值outputimg是一个放缩后的图像矩阵
if n <= 0
error('缩放倍数n的值应该大于0!');
end
%四舍五入计算放大后图像矩阵
[H,W,CH] = size(A);
DH = round(H * n);
DW = round(W * n);
outputimg = zeros(DH,DW,CH);
%利用双线性插值公式,从新矩阵映射回原图像
for di = 1:DH
for dj = 1:DW
ii = di / n;jj = dj / n;
i = floor(ii);j = floor(jj);
u = ii - i;v = jj - j;
i = i + 1;j = j + 1;
%边界处理
if (i < 1)
i = 1;
end
if (j < 1)
j = 1;
end
if((i + 1) > H)
i = H - 1;
end
if((j + 1) > W)
j = W -1;
end
%线性插值公式
outputimg(di,dj,:) = (1 - u) * (1 - v) * A(i,j,:) + (1 - u) * v * A(i,j + 1,:);
+ u * (1 - v) * A(i + 1,j,:) + u * v * A(i + 1,j + 1,:);
end
end
%转化成uint8才能正常显示
outputimg = uint8(outputimg);
-------------------------------------------------
对其进行调用,也可以直接使用imresize()函数(文章最后有简单介绍),处理CUFED5
---------------------------------------------------
clc;close all;clear all;
for num = 0:125
c1 = '00';
if num>=10
c1='0'
end
c2 = num2str(num);
c3 = '_0.png';
img_name = [c1,c2,c3]
if num>=100
img_name = [c2,c3]
end
A = imread(img_name);
B = my_imresize(A,0.25);
imwrite(B,['CUFED5_LR\' , img_name]);
% figure,imshow(A),title('原图');
% figure,imshow(B),title('缩小1/4后的图像');
end
----------------------------------------------
之后发现双线性插值效果并不理想
从这两张图片就可以看出差别
双线性:
双三次:
于是打算使用双三次插值。这次直接调用函数,
只改变这一行即可
B = imresize(A, 0.25, 'bicubic');
最后是imresize()函数。
matlab中imresize()函数的功能是改变图像的大小。
其用法有多种:*
1、B = imresize(A,m) 将图片A放大m倍
2、B = imresize(A,m,method) 将图片A由参数method指定的插值运算方法来改变图像的大小到m倍,
method的几种可选值:
'nearest’最近邻插值(默认)
'bilinear’双线性插值
'bicubic’双三次插值
在数值分析这个数学分支中,双三次插值(英语:Bicubic interpolation)是二维空间中最常用的插值方法。在这种方法中,函数f在点 (x,y) 的值可以通过矩形网格中最近的十六个采样点的加权平均得到。
3、B = imresize(A,[mrows ncols],method) 将图片A由参数method指定的插值运算方法,来改变图像的大小到长宽为[mrows ncols]
4、B = imresize(…,method,n)
5、B = imresize(…,method,h)
其中的h可以是任意一个FIR滤波器(h通常由函数ftrans2、fwind1、fwind2、或fsamp2等生成的二维FIR滤波器)。
matlab双线性插值双三次插值对CUFED5进行处理相关推荐
- js 双线性插值 双三次插值法 实现
js 双线性插值 双三次插值法 实现 介绍 双线性插值 原理 双三次插值法 原理 js实现 介绍 在网页中利用canvas进行绘图时,遇到一个问题,原始的数据分辨率很小,而图片要放大到整个网页,所以需 ...
- 数字图像处理实验1.2:matlab双线性插值缩放、缩小图像
2.Zooming and Shrinking Images by Bilinear Interpolation 通过双线性插值来缩放和缩小图像 (a)编写一个能够通过双线性插值来缩放和缩小图像的计算 ...
- js插值计算_js图像处理 双线性插值 双三次插值法 实现
介绍 在网页中利用canvas进行绘图时,遇到一个问题,原始的数据分辨率很小,而图片要放大到整个网页,所以需要把数据进行插值放大.学习了双线性插值和三次内插法插值,两种方式实现效果不同,双线性插值放大 ...
- matlab实现彩色图像的平移、旋转、缩放、镜像(双线性插值)
matlab双线性插值实现彩色图像的平移.旋转.缩放.镜像 原理概述 代码 平移 镜像 缩放 旋转 结果 原图 平移(向X正方向.Y正方向50个距离单位) 镜像(左右.上下) 缩放(查看分辨率可知是否 ...
- matlab关闭图像命令,matlab图像处理命令
<matlab图像处理命令>由会员分享,可在线阅读,更多相关<matlab图像处理命令(108页珍藏版)>请在人人文库网上搜索. 1.MATLAB常用的图像操作,数字图像研究的 ...
- 大厂必考深度学习算法面试题
一,滤波器与卷积核 二,卷积层和池化输出大小计算 2.1,CNN 中术语解释 2.2,卷积输出大小计算(简化型) 2.3,理解边界效应与填充 padding 参考资料 三,深度学习框架的张量形状格式 ...
- 大厂必考深度学习面试题及参考答案
目录 一,滤波器与卷积核 二,卷积层和池化输出大小计算 2.1,CNN 中术语解释 2.2,卷积输出大小计算(简化型) 2.3,理解边界效应与填充 padding 参考资料 三,深度学习框架的张量形状 ...
- 编程大实践 # python # 嵩天 # Cilay
图像增强 一.项目背景 1.图像增强 图像增强是指增强图像中的有用信息,它可以是一个失真的过程,其目的是要改善图像的视觉效果,针对给定图像的应用场合. 有目的地强调图像的整体或局部特性,将原来不清晰的 ...
- merra-2气溶胶、OMI大气产品数据处理阶段摸索中~~~
2023.0403 近期在国内数据中心网页上批量下载数据,还在摸索批量快速下载的方法: 想起来之前批量下载NASA数据,补充一下wget批量下载merra-2数据的方法: 博主讲得很详细: NASA气 ...
- 【图像处理】双三次插值(Bicubic interpolation)原理及matlab简易版代码
先简单写下. 双线性插值:缩放后图像矩阵(简称TI)像素坐标映射到原图像矩阵(简称OI)中得坐标点P(x,y),P点临近四个坐标点像素值的线性加权求和即P点像素值. "双"指的图像 ...
最新文章
- C语言实现bmp图像对比度扩展
- HDU1212(大数取模-秦九昭算法)
- opencv+VS如何运行
- 找不到具有绑定 MetadataExchangeHttpBinding 的终结点的与方案 http 匹配的基址。注册的基址方案是 [https]...
- 跨域 || Jsonp
- 数据库连接池的实现及原理
- html 自动滚动标签,HTML滚动标签(marquee标签)
- springboot---request 中Parameter,Attribute区别
- 物理服务器备份系统,物理备份和逻辑备份区别
- java get方法不序列化_Java中的Json序列化,不容忽视的getter
- 【nosql】NoSql是什么?
- SVM支持向量机:分类、回归和核函数
- 最短路+状压DP【洛谷P3489】 [POI2009]WIE-Hexer
- coco数据集大小分类_COCO数据集的简单介绍
- jackson框架java反序列化漏洞_Jackson CVE-2019-12384: 反序列化漏洞复现
- Odin Inspector 系列教程 --- 初识Odin序列化
- Testbed软件下载安装使用试用
- AHU-2017校赛现场赛 B 下一个幸运数
- scp在命令行中带密码远程拷贝文件
- 真正免费的天气API,无需注册申请key
热门文章
- logo字体设计心法
- 苏州大学计算机考研复试经验,苏大考研网:2014年苏州大学计算机考研经验
- Java Map是否有序
- J2Cache以RabbitMQ作为消息通知配置
- 产品经理入职四部曲—带你顺利度过试用期
- matlab 线性规划 单纯形法
- 静态分析软件(QAC、Klocwork,Coverity等),单元测试软件集成测试软件 (VectorCAST、testbed、tessy、c++test等)下载安装使用试用
- 用JavaScript做一个日历和用canvas做一个时钟
- apdu 移动sim_SIM卡APDU指令【转】
- 同一个项目中让R和Python无缝工作的五种方法