最近领域和双线性插值法
《最近领域和双线性插值法》由会员分享,可在线阅读,更多相关《最近领域和双线性插值法(7页珍藏版)》请在装配图网上搜索。
1、河北农业大学数字图像处理课程设计 基于Matlab的图像放缩技术 院 系: 专业班级: 姓 名: 学 号: 2011年1月8日摘要数字图像缩放技术主要基于插值算法。本文在介绍插值算法时首先介绍了最近邻插值、双线性插值算法。图像的双线性插值是图像处理中常用到的一种图像放大方法, 为了更好的研究图像放缩的本质和如何使用双线性插值法。本课程设计着重研究最近邻域和双线性插值法。通过matlab软件对数字图像进行放缩处理1.设计目标:利用最近领域和双线性插值法实现图片的放缩功能。2.设计原理:2.1最近邻法:它输出的像素灰度值就等于距离它映射到的位置最近的输入像素的灰度值,取离I(i/b,j/a,k)最
2、近的整数点的灰度值为点I(i/b,j/a,k)的灰度值。取最近整数点用四舍五入。在许多情况下,最近邻插值的结果可以令人接受。2.2双线性插值法:通过已知输入四点灰度内插输出点灰度,令f(x,y)为任意两个变量函数,其在单位正方形顶点的值已知,假设我们希望通过插值得到正方形内任意点的f(x,y)的灰度值,则可由双曲线方程来定义一个双曲面抛物面与已知四个点拟合。从a到d这四个系数需由已知的四个顶点的f(x,y)灰度值结合。首先,对上端的两个顶点进行线性插值,可得同理对低端进行线性插值,可得最后,进行垂直方向的线性插值,可得将(1)(2)代入(3),展开等式并合并同类项,可得3. 设计程序流程图:开
3、始读入图像并计算矩阵大小输入缩放倍数兵输出新图像的矩阵利用双线性公式进行插值为防止矩阵溢出进行的边界控制为边界赋值,将黑边去掉输出图像结束开始读入图像计算图像的矩阵输入缩放倍数定义输出图像的矩阵大小利用最近邻域法将图像放大输出图像结束最近邻法缩放图像双线性法缩放图像4. 设计程序(详述,至少添加2/3注释)最近邻法:I=imread(flower.jpg);m,n=size(I);k = str2double(inputdlg(请输入缩放倍数, INPUT scale factor, 1, );m1 = k * m; % K为缩放的倍数,确定输出矩阵大小 n1 = k * n;J = uint
4、8(zeros(m1,n1); %定义输出图像矩阵for i = 5:m1 - 5 %为防止矩阵溢出而选择的参数5 for j = 5:n1 - 5 x0=i/k;y0=j/k;x = double(round(x0); y = double(round(y0);J(i,j)=I(x,y); end endfor i=1:5 %为15行个点赋值 for j=5:n1-5 J(i,j)=J(6,j); endendfor i=m1-5:m1 %为最后五行赋值 for j=5:n1-5 J(i,j)=J(m1-6,j); endendfor i=1:m1 %为15列赋值 for j=1:5 J(i
5、,j)=J(i,6); endendfor i=1:m1 for j=n1-5:n1 %为最后五列赋值 J(i,j)=J(i,n1-6); endendimshow(I); %输出原图像figure;imshow(J); %输出缩放后图像双线性插值法:I=imread(flower.jpg); %读入原图像m,n=size(I);K = str2double(inputdlg(输入缩放倍数 (必须在 0.2 - 5.0之间), INPUT scale factor, 1, ); %输入要放大的倍数注意不要越界m1 = K * m; n1 = K * n;J = uint8(zeros(m1,n
6、1); %创建输出图像的矩阵for i = 5:m1 - 5 % 5是为了防止矩阵超出边界溢出 for j = 5:n1 - 5 x0 = i/K; y0 = j/K; x = double(uint16(x0); y=double(uint16(y0); J(i,j)=(I(x+1,y)-I(x,y)*(x0-x)+(I(x,y+1)-I(x,y)*(y0-y)+(I(x+1,y+1)+I(x,y)-I(x,y+1)-I(x+1,y)*(x0-x)*(y0-y)+I(x,y); % 用双线性插值计算公式计算 end endfor i=1:5 %为15行个点赋值 for j=5:n1-5 J(
7、i,j)=J(6,j); endendfor i=m1-5:m1 %为最后五行赋值 for j=5:n1-5 J(i,j)=J(m1-6,j); endendfor i=1:m1 %为15列赋值 for j=1:5 J(i,j)=J(i,6); endendfor i=1:m1 for j=n1-5:n1 %为最后五列赋值 J(i,j)=J(i,n1-6); endendimshow(I);figure;imshow(J);5. 图像效果分析:(详述) 最近邻法缩放2倍后原图像 双线性插值法扩大二倍后原图像个256*256像素的灰度图像(flower.jpg)。经过引入,分析,计算后通过最近邻
8、法插值可得到放缩二倍后的图像,缩小后图像明显比原图像更清晰,下图采用了双线性差值的方法,进行图像放缩时,能得到更清晰地图像。虽然图像放大了,但是图像的清晰度并没有变化多少,这就是双线性插值方法的优越性,它比最邻近值法更好,更清晰。6. 实习结论通过本次课程设计,更好的掌握了数字图像的缩放处理和效果显示,在MATLAB环境下,通过程序的运行的到了,经过放缩后的图像,更好的理解了图像放缩的本质和最近邻法以及双线性插插值法的运用。最简单的插值算法是最邻近插值。它输出的像素灰度值就等于距离它映射到的位置最近的输入像素的灰度值,最邻近插值算法简单,在许多情况下都能得到令人满意的结果,但是当图像中包含像素之间灰度级有变化的细微结构时,最邻近算法会在图像中产生人为加工的痕迹。双线性插值算法计算量比最近邻插值大,但缩放后图像质量高,不会出现像素值不连续的情况,这样就可以获得一个令人满意的结果。在实际编程过程中应注意矩阵边界溢出的问题和边界的处理问题。7.参考文献:1.2.3. 李慧敏 计算机图形显示的发展历史 期刊论文 电脑爱好者 2003(03)4. 徐雨明.文双春 数字图像插值算法的分析与实现 期刊论文 -福建电脑2007(01)
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。