图像的放大算法地地总结及MATLAB源程序.pdf

图像的放大算法地地总结及MATLAB源程序.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 ,插值算法( 3 种): (1 )最邻近插值(近邻取样法) : 最邻近插值的的思想很简单, 就是把这个非整数坐标作一个四舍五入, 取最近的整数点 坐标处的点的颜色。可见,最邻近插值简单且直观,速度也最快,但得到的图像质量不高。 最邻近插值法的 MATLAB 源代码为: A = imread( 'F:\lena.jpg' ); %读取图像信息 imshow(A); % 显示原图 title( ' 原图 128*128' ); Row = size(A,1); Col = size(A,2); % 图像行数和列数 nn=8; % 放大倍数 m = round(nn*Row); % 求出变换后的坐标的最大值 n = round(nn*Col); B = zeros(m,n,3); % 定义变换后的图像 for i = 1 : m for j = 1 : n x = round(i/nn); y = round(j/nn); %最小临近法对图像进行插值 if x==0 x = 1; end if y==0 y = 1; end 实用标准文案 if x>Row x = Row; end if y>Col y = Col; end B(i,j,:) = A(x,y,:); end end B = uint8(B); %将矩阵转换成 8 位无符号整数 figure; imshow(B); title( ' 最邻近插值法放大 8倍 1024*1024' ); 运行程序后,原图如图 1 所示: 图 1 用最邻近插值法放大 4 倍后的图如图 2 所示: 精彩文档 实用标准文案 图 2 (2 )双线性内插值法: 在双线性内插值法中,对于一个目的像素,设置坐标通过反向变换得到的浮点坐标为 (i+u,j+v) ,其中 i 、j 均为非负整数, u 、v 为 [0,1) 区间的浮点数, 则这个像素得值 f(i+u,j+v) 可由原图像中坐标为 (i,j) 、(i+1,j) 、(i,j+1) 、(i+1,j+1) 所对应的周围四个像素的值决定, 即: f(i+u,j+v) = (1-u)(1-v)f(i,j) + (1-u)vf(i,j+1) + u(1-v)f(i+1,j) + uvf(i+1,j+1) 其中 f(i,j) 表示源图像 (i,j) 处的的像素值,以此类推。 精彩文档 实用标准文案 这就是双线性内插值法。 双线性内插值法计算量大, 但缩放后图像质量高, 不会出现像 素值不连续的的情况。 由于双线性插值具有低通滤波器的性质, 使高频分量受损, 所以可能 会使图像轮廓在一定程度上变得模糊。 在 MATLAB 中,可用其自带的函数 imresize( ) 来实现双线性内插值算法。 双线性内插值算法的 MATLAB 源代码为: A=imread( 'F:\lena.jpg' ); imshow(A); title( ' 原图 128*128' ); C=imresize(A,8, 'bilinear' ); % 双线性插值 figure; i

文档评论(0)

wanggx999 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档