华工数字信号处理-设计性实验-图像信号的抽取与插值
金陵十三钗电影结局-姐姐干
芇
图像信号的抽取与插值
一、
二、
膆
实验目的
1.
2.
羂
熟悉图像处理常用函数和方法
3.
4.
芈
培养通过阅读文献解决问题的能力
二、
三、
罿
实验要求
袅
给出一个二维灰度图像。
1.
2.
羂
编程实现对图像任意比例的放大及缩小
3.
4.
虿
编程实现对图像任意角度的旋转
5.
6.
莇
解决缩放和旋转时产生锯齿等不图像不平滑问题
三、
四、
蚄
实验提示
1.
2.
肂
采用上采样、下采样对图像进行缩放
3.
4.
肀
观察对图像进行缩放或旋转时,图像是否会出现锯齿等不平滑现象
5.
6.
聿
分析锯齿产生原因
7.
8.
蚇
查阅文献需找解决锯齿的方法
四、
五、
膂
实验分析
(1)
(2)
蒁
图像的缩放
薇
实为在图像像素点间插入N-1个点的的上采样,而缩小则是采用下采样来实现
蒆
原图:
节
代码实现:
袂
functionimagechange()
芈
pic=imread('');
[l,w]=size(pic);
l1=3*l;
芅
莂
羈
w1=3*w;
i=1:l;
x=ceil(i*l1l);
ii=1:w;
y=ceil(ii*w1w);
fori=1:l
forii=1:w
a(ceil(i*l1l),ceil(ii*w1w))=pic(i,ii);
end;
end;
fori=1:l
forii=1: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);
薂
end;
end;
end;
fori=1:w1
forii=1:l-1
n=(x(ii));
m=(x(ii+1));
foriii=1:m-n-1
肆
蚇
螁
虿
螈
莆
袁
肀
a(n+
iii,i)=(a(m,i)-a(n,i))*iii(m-n)+a(n,i);
end;
end;
蒀
膅
end;
薁
imshow(a);
羁
羇
放大两倍效果如图:
莀
-》
蒇
(放大两倍以后,已不如原图的清晰)
芈
缩小两倍以后为:
肆
-》
(3)
(4)
莃
图像旋转
蒇
根据坐标变换公式,可将旋转后坐标(x1,y1)映射到原坐标(x,y)
x=x1*cos(b)-y1*sin(b)
y=x1*sin(b)+y1*cos(b)
蒅
薄
由于求出来的原坐标不为整数,故将其取整,若求得(x,y)坐标范围处于有效范围,即 0
膂
薇
代码实现为:
袆
functionimagechange2
芆
pic=imread('');
[l,w]=size(pic);
b=30;
xx=[0,0,l,l];
yy=[0,w,w,0];
b=b*2*pi360;
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);
end;
end;
[l1,w1]=size(a);
forx=1:l1
fory=1:w1
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>0&&yt<=w)
a(x,y)=pic(xt,yt);
end;
end;
芃
莀
羇
end;
肂
imshow(a);
螅
蒀
截图:
莈
四、实验感想
图像放大,采用线性插值法。具体做法为,在两点之间
,插入一些点使之与原本的渐变速度保持一致,因为
在图像变化比较大的区域不应采用平稳的渐变,而线
性插值虽然使变化平稳部分的锯齿状况有所改善,但缺使变
化剧烈的部分出现了不应有的渐变。
图像旋转时,从新画布出发寻找原画布上的像素点,由于变换之后的坐标为小数,故对新坐标取整,这
个过
程实际上是邻近插值法,但放大后仍能发现一些锯齿。
膃