图像放大算法总结及MATLAB源程序(共8页).doc
《图像放大算法总结及MATLAB源程序(共8页).doc》由会员分享,可在线阅读,更多相关《图像放大算法总结及MATLAB源程序(共8页).doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上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
2、 = 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 xRow x = Row; end if yCol y = Col;end B(i,j,:) = A(x,y,:); endendB = uint8(B);%将矩阵转换成8位无符号整数figure;imshow(B);title(最邻近插值法放大8倍1024*1024);运行程序后,原图如图1所示:图1用最邻近插值法放大
3、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)处的的像素值,以此类推。这就是双线性内插值法。双线性内插值
4、法计算量大,但缩放后图像质量高,不会出现像素值不连续的的情况。由于双线性插值具有低通滤波器的性质,使高频分量受损,所以可能会使图像轮廓在一定程度上变得模糊。在MATLAB中,可用其自带的函数imresize( )来实现双线性内插值算法。双线性内插值算法的MATLAB源代码为:A=imread(F:lena.jpg);imshow(A);title(原图128*128); C=imresize(A,8,bilinear); %双线性插值figure;imshow(C);title(双线性内插值法放大8倍1024*1024);程序运行后,原图如图3所示:图3双线性内插值法放大8倍后的图如图4所示:
5、图4(3)双三次插值法:双三次插值法能够在很大程度上克服以上两种算法的不足,该算法计算精度高,但计算量大,它考虑一个浮点坐标(i+u,j+v)周围的16个邻点。目的像素值f(i+u,j+v)可由如下插值公式得到:f(i+u,j+v) = A * B * C其中A= S(u + 1)S(u + 0)S(u - 1)S(u - 2) ;C= S(v + 1)S(v + 0)S(v - 1)S(v - 2) T;而B是周围16个邻点组成的4*4的矩阵;S(x)是对 Sin(x*)/x 的逼近。在MATLAB中,可用其自带的函数imresize( )来实现双三次插值算法。MATLAB源代码为:A=im
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图像 放大 算法 总结 MATLAB 源程序
限制150内