实验九、图像几何变换(最近邻,双线性插值法)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验九、图像几何变换
一,目的
1)了解图像变换的基本原理
2)掌握最近邻法及双线插值法
二,实验条件
1)微型计算机:INTEL 奔腾及更高
2)MATLAB
3)典型的灰度、彩色图像文件
三,原理
1)最近邻点法
2)双线性插值法
四,实验内容
1)对给定的图像进行缩放,倍率分别为1.5和0.7,在缩放过程中,根据灰度值不变
原理相应位置的灰度值进行记标,其中不能直接在对应的位置予以插值,记标分别
按最近邻法和双线法确定之;
i.最近邻法
clear
cd d:
I_=imread('test.jpg');%读入原始图像
I1=rgb2gray(I_);%I2=double(I1);
% J1_5 = imresize(I1,1.5);%调整图像的大小
% J0_7 = imresize(I1,.7);%调整图像的大小
[i,j]=size(I1);
m=round(i*1.5);n=round(j*1.5);
m_=round(i*0.7);n_=round(j*0.7);
% 1.5倍最邻近
TEMP=zeros(m,n);%产生m*n矩阵
for i = 1:m
for j = 1:n
TEMP(i,j)=I1(round(i/1.5),round(j/1.5));
end
end
subplot(1,3,1) ,imshow(I1),title('原图')
TEMP1_5=uint8(TEMP);
subplot(1,3,2),imshow(TEMP1_5),title('1.5倍最邻近')
% 0.7倍最邻近
TEMP7=zeros(m_,n_);%产生m*n矩阵
for i_ = 1:m_
for j_ = 1:n_
TEMP7(i_,j_)=I1( round(i_/0.7),round(j_/0.7) );
end
end
TEMP7_=uint8(TEMP7);
subplot(1,3,3),imshow(TEMP7_),title('0.7倍最邻近')
原始图像
原始图像
1.5倍最邻近
0.7倍最邻近
ii.双线法
图像之间坐标映射有两种方式:如果是从原图像的坐标映射到目标图像,称为前向映射,反之则称为后向映射。显然,双线性插值采用的是后向映射方式。
clear
cd d:
I_=imread('test.jpg');%¶ÁÈëÔ-ʼͼÏñ
I=rgb2gray(I_);
A=0.7;B=0.7;%失真像素坐标
[i,j]=size(I);
m=round(i*A);n=round(j*B);
temp=zeros(m,n);%产生m*n矩阵
G=[A 0;0 B];
for x=1:m
for y=1:n
ab=[x,y]/G;%取得x/A,y/B
%权值
a=ab(1)-floor(ab(1));
b=ab(2)-floor(ab(2));
%防溢出处理
if ab(1)<1
ab(1)=1;
end
if ab(1)>i
ab(1)=i;
end
if ab(2)<1
ab(2)=1;
end
if ab(2)>j
ab(2)=j;
end
%定义内插值坐标
ab11=[floor(ab(1)) floor(ab(2))];
ab12=[floor(ab(1)) ceil(ab(2))];
ab21=[ceil(ab(1)) floor(ab(2))];
ab22=[ceil(ab(1)) ceil(ab(2))];
temp(x,y)=(1-a)*(1-b)*I(ab11(1),ab11(2))+...
a*(1-b)*I(ab12(1),ab12(2))+...
(1-a)*b*I(ab21(1),ab21(2))+...
a*b*I(ab22(1),ab22(2));
end
end
imshow(uint8(temp)),title('0.7倍双线性');
原始图像
原始图像
1.5倍双线性
0.7倍双线性
0.7倍双线性
2、显示并比较采用不同插值法进行缩放的图像质量(主观评价即可)
主观上最邻近点法的图像效果明显比双线性插值法好一些,最邻近点法处理后的图像更圆滑,而双线性处理后的图像则出现了锯齿状,但增大变化倍数后会有所改善。
五,讨论与分析
在一次通过对更大像素值图像的处理可以显示,最邻近点法的图像显示效果比双线性更深一些。
0.7倍最邻近
0.7倍最近邻点法
0.7倍双线性
0.7倍双线性
仅供参考