插值算法(最邻近内插法、双线性内插法)matlab实现

更新时间:2023-07-10 00:56:46 阅读: 评论:0

插值算法(最邻近内插法、双线性内插法)matlab实现
1. 最邻近插值法
即是选取⼀个最靠近的像素为它的像素值,
这是最简单的⼀种插值⽅法,不需要计算。在待求像素的四邻像素中,将距离待求像素最近的邻接像素灰度值赋予待求像素。设i+u, j+v(i, j 为正整数, u, v为⼤于零⼩于1的⼩数,下同)为待求象素坐标,则待求象素灰度的值f(i+u, j+v) 如下图所⽰:
如果(i+u, j+v)落在A区,即u<0.5, v<0.5,则将左上⾓象素的灰度值赋给待求象素,同理,落在B区则赋予右上⾓的象素灰度值,落在C区则赋予左下⾓象素的灰度值,落在D区则赋予右下⾓象素的灰度值。
评价:
大区经理最邻近元法计算量较⼩,但可能会造成插值⽣成的图像灰度上的不连续,在灰度变化的地⽅可能出现明显的锯齿状。
2. 双线性内插法
双线性内插法是利⽤待求象素四个邻象素的灰度在两个⽅向上作线性内插,如下图所⽰:
对于 (i, j+v),f(i, j) 到 f(i, j+1) 的灰度变化为线性关系,则有:
f(i, j+v) = [f(i, j+1) - f(i, j)] * v + f(i, j)
同理对于 (i+1, j+v) 则有:
f(i+1, j+v) = [f(i+1, j+1) - f(i+1, j)] * v + f(i+1, j)
从f(i, j+v) 到 f(i+1, j+v) 的灰度变化也为线性关系,由此可推导出待求象素灰度的计算式如下:
f(i+u, j+v) = (1-u) * (1-v) * f(i, j) + (1-u) * v * f(i, j+1) + u * (1-v) * f(i+1, j) + u * v * f(i+1, j+1)
评价:
双线性内插法的计算⽐最邻近点法复杂,计算量较⼤,但没有灰度不连续的缺点。它具有低通滤波性质,使⾼频分量受损,图像轮廓可能会有⼀点模糊。图像看起来更光滑。
Matlab实现:
function []=BUPT_up()
path='Lena512_ASCII2020.pgm';
path2='Baboon512_ASCII2020.pgm';
factor1=4.5;
factor2=3.6;
%nearest neighbour interpolation屌丝说
穿越的英文im1=imread(path);
[row,column]=size(im1);
newr=round(factor1.*row);
newc=round(factor1.*column);
sampled_im1=zeros(newr,newc);
for i=1:newr
for j=1:newc
i1=round(i./factor1);
j1=round(j./factor1);
if i1==0 i1=1; end
if j1==0 j1=1; end
if i1>row i1=row; end
什么叫神话故事
if j1>column j1=column; end
sampled_im1(i,j)=im1(i1,j1);
end
end
sampled_im1=uint8(sampled_im1);
imwrite(sampled_im1,'Lena_upsample.jpg');
figure,imshow(sampled_im1);
%bilinear interpolation
im2=imread(path2);
im2=double(im2);
[row,column]=size(im2);
newr=round(factor2.*row);
newc=round(factor2.*column);
sampled_im2=zeros(newr,newc);
for i=1:newr
for j=1:newc
火车过山洞ii=i./factor2;
jj=j./factor2;
i1=round(ii);
j1=round(jj);
if i1==0 i1=1; end
if j1==0 j1=1; end
if i1>row-1 i1=row-1; end
if j1>column-1 j1=column-1; end
if((ii/i1==1.0)&&(jj/j1==1.0))
心慌意急
sampled_im2(i,j)=im2(ii,jj);
el怎样存钱利息高
人一个
x11=im2(i1,j1); x12=im2(i1,j1+1);
x21=im2(i1+1,j1); x22=im2(i1+1,j1+1);
sampled_im2(i,j)=(j1+1-jj)*((ii-i1)*x21 +(i1+1-ii)*x11)+(jj-j1)*((ii-i1)*x22 +(i1+1-ii)* x12);        end
end
end
sampled_im2=uint8(sampled_im2);
imwrite(sampled_im2,'Baboon_upsample.jpg');
figure,imshow(sampled_im2);
end

本文发布于:2023-07-10 00:56:46,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1088232.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:灰度   待求   象素   像素
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图