编程且利用双线性插值实现图像的缩放

上传人:飞*** 文档编号:6405336 上传时间:2017-09-11 格式:DOC 页数:4 大小:61KB
返回 下载 相关 举报
编程且利用双线性插值实现图像的缩放_第1页
第1页 / 共4页
编程且利用双线性插值实现图像的缩放_第2页
第2页 / 共4页
编程且利用双线性插值实现图像的缩放_第3页
第3页 / 共4页
编程且利用双线性插值实现图像的缩放_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《编程且利用双线性插值实现图像的缩放》由会员分享,可在线阅读,更多相关《编程且利用双线性插值实现图像的缩放(4页珍藏版)》请在金锄头文库上搜索。

1、一设计题目编程且利用双线性插值实现图像的缩放二设计目的1、 熟悉 matlab 使用环境及工作原理;2、 掌握图像缩放的原理;3、 学会双线性插值法的应用;4、 体会图像灰度值的变化过程。三设计原理1 双线性插值算法 简单比方 原来的数值序列:0,10,20,30,40 线性插值一次为:0,5,10,15,20,25,30 ,35,40 即认为其变化(增减)是线形的,可以在坐标图上画出一条直线 在数码相机技术中,这些数值可以代表组成一张照片的不同像素点的色彩、色度等指标。为了方便理解,先考虑一维情况下的线性插值 对于一个数列 c,我们假设 ca到 ca+1之间是线性变化的 那么对于浮点数 x(

2、a=xa+1),c(x)=ca+1*(x-a)+ca*(1+a-x); 把这种插值方式扩展到二维情况 对于一个二维数组 c,我们假设对于任意一个浮点数 i,c(a,i)到 c(a+1,i)之间是线性变化的,c(i,b)到 c(i,b+1)之间也是线性变化的(a,b 都是整数) 那么对于浮点数的坐标(x,y)满足(a=xa+1,b=yb+1) ,我们可以先分别求出 c(x,b)和 c(x,b+1): c(x,b) = ca+1*(x-a)+ca*(1+a-x); c(x,b+1) = ca+1b+1*(x-a)+cab+1*(1+a-x); 好,现在已经知道 c(x,b)和 c(x,b+1)了,

3、而根据假设 c(x,b)到 c(x,b+1)也是线性变化的,所以: c(x,y) = c(x,b+1)*(y-b)+c(x,b)*(1+b-y) 这就是双线性插值2、图像缩放的基本原理:1) 根据已有的数字图像重建物理图像。2) 对重建的物理图像以所需要的分辨率重采样。四设计程序应用 matlab 编程:clear;I=imread(E:cel.jpg);Z=rgb2gray(I);rows,cols=size(Z);K1 = str2double(inputdlg(请输入行缩放倍数, INPUT scale factor, 1, 0.5);%行默认变为原来的 0.5 倍K2 = str2do

4、uble(inputdlg(请输入列缩放倍数, INPUT scale factor, 1, 0.5);%列默认变为原来的 0.5 倍width = K1 * rows; height = K2 * cols;Out = uint8(zeros(width,height); %创建输出图像矩阵widthScale = rows/width;heightScale = cols/height;for x = 6:width - 6 % 6 是为了防止矩阵超出边界溢出for y = 6:height - 6oldX = x * widthScale; % oldX,oldY 为原坐标,x,y 为新

5、标oldY = y * heightScale;if (oldX/double(uint16(oldX) = 1.0) & (oldY/double(uint16(oldY) = 1.0) Out(x,y) = Z(int16(oldX),int16(oldY);%若oldX,oldY 为整数,直接赋值 else a = double(uint16(oldX); b = double(uint16(oldY);x11 = double(Z(a,b); % x11 赋值 I(a,b)x12 = double(Z(a,b+1); % x12 赋值I(a,b+1)x21 = double(Z(a+1

6、,b); % x21 赋值I(a+1,b)x22 = double(Z(a+1,b+1); % x22 赋I(a+1,b+1) Out(x,y) = uint8( (b+1-oldY) * (oldX-a)*x(a+1-oldX)*x11) + (oldY-b) * (oldX-a)*x22 +(a+1-oldX) * x12) ); % 用双线性插值计算公式计算endendendimshow(Z);figure;五效果图对比压缩前图像压缩后图像六程序分析先将原图像(即 658*469)通过 matlab 语句锁定,变换成相应的灰度图像,再将这个灰度图像的尺寸锁定,将其按照横向 0.5,纵向 0.5 的比例缩小,得到想要的图像。这个过程是通过对原图像中每个像素点的改变而相应的全图像改变的。最后得到 329*234 的灰度图像。七设计体会通过这次课设,使我加深了对 matlab 编程的认识,应用 matlab 使应该注意的一些问题及它适用的环境。同时,学习了双线性插值在图像的缩放中的具体应用,在 matlab 中的相关语句。并且,了解了图像缩放的具体过程。在多媒体信息与通信中,许多的知识都可以用 matlab 来实现,matlab 是一个基础实用的软件,对图像的操作处理在日后的学习工作中是必不可少的,这次的设计让我深入的学习了这方面的知识,认识到理论结合实际的必要性。0.75

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号