图像信号的抽取与插值Word文档格式.docx
- 文档编号:5846438
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:12
- 大小:345.08KB
图像信号的抽取与插值Word文档格式.docx
《图像信号的抽取与插值Word文档格式.docx》由会员分享,可在线阅读,更多相关《图像信号的抽取与插值Word文档格式.docx(12页珍藏版)》请在冰点文库上搜索。
9、查阅文献了解解决锯齿现象的方法。
(例如平滑滤波、双线性插值、双立方插值等处理)
三、实验细节
1、实现图像的放大
算法:
为了实现图像的放大,首先将原图按照x1=a*x,y1=b*x将原图的像素点(x,y)映射为新的画布上的(x1,y1)点,如上图左一到左二。
然后,以行或列为一个处理单位,采用一种图像插值算法,在两红点之间的空白点插入一些值,使图像充满整个画布。
具体顺序如上图所示,先按行插值,再按列插值。
本实验采用的插值算法要达到的目标是,使插入点的斜率与原图保持一致
具体插值方法如下(以宽度放大三倍为例):
取出一行像素点,使时域坐标变为原来的三倍。
假设两相邻像素点坐标分别为a[n]和a[m],则在a[n+1]、a[n+2]、a[n+i]…a[m-1]处填入的灰度值为:
过程如下:
图①
原图像的一行像素点
图②
使时域坐标变为原来的三倍
图③
在两点间插值,使新插入的点与原先的两点以同一斜率变化。
2.实现图像的缩小:
若要实现缩小,则同样按照x1=ax,y1=by的坐标转换关系将原画布上的点映射到新画布上,那么新画布上的一点将成为原画布上多点的映射,此时,新画布的点只需取其中一个映射点即可。
运行结果:
(以行列均放大三倍为例)
①放大前的图像:
②将图像的行列上的时域变为原来的三倍。
③行插值:
④列插值后(完成):
颗粒(锯齿)不明显
使用线性插值法
假如使用临近插值法,将得到如下图片,可见,在图中眼部的位置,临近插值法的锯齿更为明显,而使用本实验插值算法得到的图像边缘更为平滑。
颗粒(锯齿)明显
使用临近插值法
图像缩小:
(以行列均缩小为1/2为例)
代码清单:
clear;
clf;
pic=imread('
image.jpg'
);
k=2;
%¾
â
³
Ý
Ï
û
ý
µ
Ê
[l,w]=size(pic);
pic(l+1,1)=0;
pic(1,w+1)=0;
l1=2*l;
w1=2*w;
i=1:
l;
x=ceil(i*l1/l);
ii=1:
w;
y=ceil(ii*w1/w);
fori=1:
l
forii=1:
w
a(ceil(i*l1/l),ceil(ii*w1/w))=pic(i,ii);
end;
end;
w-1
n=(y(ii));
m=(y(ii+1));
foriii=1:
m-n-1
a(x(i),n+iii)=(a(x(i),m)-a(x(i),n))*iii/(m-n)+a(x(i),n);
w1
l-1
n=(x(ii));
m=(x(ii+1));
a(n+iii,i)=(a(m,i)-a(n,i))*iii/(m-n)+a(n,i);
imshow(a);
2.实现图片的旋转
根据坐标变换公式,可将旋转后坐标(x1,y1)映射到原坐标(x,y)
x=x1*cos(b)-y1*sin(b)
y=x1*sin(b)+y1*cos(b)
由于求出来的原坐标不为整数,故将其取整,若求得(x,y)坐标范围处于有效范围,即0<
x≤l,0<
y≤w,l为原图长度,w为原图宽度,则(x1,y1)的灰度取为(x,y)的灰度值。
原图(x,y)旋转后(x1,y1)
如上图所示,从(x1,y1)出发回到原图寻找对应的(x,y)坐标,如果(x1,y1)对应的点(x,y)在原画布内,则该点的灰度值取为最临近的整数点的灰度值,如图中黑线所示;
否则(x1,y1)取为空白点,如途中红线所示。
旋转后的图片
旋转后的图片产生了锯齿
程序清单:
image1.jpg'
[l,w]=size(pic);
b=30;
xx=[0,0,l,l];
yy=[0,w,w,0];
b=b*2*pi/360;
x0=min(xx.*cos(b)-yy.*sin(b));
y0=min(xx.*sin(b)+yy.*cos(b));
x1=max(xx.*cos(b)-yy.*sin(b));
y1=max(xx.*sin(b)+yy.*cos(b));
forx=1:
fix(x1-x0)+1
fory=1:
fix(y1-y0)+1
a(x,y)=uint8(205);
[l1,w1]=size(a);
l1
xt=floor(+x*cos(b)-y*sin(b)+l*sin(b)*sin(b));
yt=floor(+x*sin(b)+y*cos(b)-l*sin(b)*cos(b));
if(xt>
0&
&
xt<
=l&
yt>
yt<
=w)
a(x,y)=pic(xt,yt);
四、实验感想
我们小组在完成本实验要求的两道题目的过程中,尝试了多种图像处理的算法,从一开始的邻近插值,到使用滤波器滤波,再到使用线性插值,最终得到了较优的处理效果。
在这过程中,设计算法与编程的能力得到了提高。
在设计图像放大算法的时候,我们首先采用的是邻近插值法,即按照坐标映射的方法,从新画布出发寻找原画中的较邻近对应点作为新像素的值,这种算法的缺点在于,当图像放大之后,原本的渐变区域并没有进行相应的处理,结果造成渐变部分出现锯齿。
于是我们小组提出了改进算法,即将图像中的高频部分滤除,以使渐变部分更为平滑。
处理的结果让人失望,虽然得到的图像比原来平滑了,但是总体上看,却使得图像质量明显下降。
于是我们又设计了第二种改进算法,即采用线性插值法。
具体做法为,在两点之间,插入一些点使之与原本的渐变速度保持一致。
处理的结果让人欣喜,在一些细致区域可以明显地看到,此算法的处理结果优于邻近插值法(报告中有对比图像)。
但是仍有不足,因为在图像变化比较大的区域不应采用平稳的渐变,而线性插值虽然使变化平稳部分的锯齿状况有所改善,但缺使变化剧烈的部分出现了不应有的渐变。
故本实验仍有可改善之处,我们可以设计一个图像均衡器,增强图像的高频部分,使图像的轮廓更清晰。
在设计图像旋转算法的时候,我们最开始采用的是直接映射法,即从原画布出发,根据坐标变换公式,寻找新画布上的对应点并赋值。
这种方法的缺陷在于,由于图像旋转后新增了许多像素点,新旧图像的像素点无法一一对应,因此在新画布上出现了许多空白的点。
于是我们采用了第二种方法,即从新画布出发寻找原画布上的像素点,由于变换之后的坐标为小数,故对新坐标取整,这个过程实际上是邻近插值法。
插值结果总体上令人满意。
但放大后仍能发现一些锯齿。
本实验有可改善之处,可采用更优的插值方法进行改进。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图像 信号 抽取