第七章-图像的空间变换
计算机图像处理
第七章 图像的空间变换
t_proj=maketform('projective',T); I_projective=imtransform(I,t_proj,'FillValues',.3); %%subplot(334),imshow(I_projective) iptsetpref('ImshowTruesize','manual'); imshow(I_projective); %%7_3_e I=imread('flowers.tif'); xybase=reshape(randn(12,1),6,2); t_poly=cp2tform(xybase,xybase,'polynomial',2); T=[0 0;1 0;0 1;0.001 0;0.02 0;0.01 0]; t_poly.tdata=T; I_polynomial=imtransform(I,t_poly,'FillValues',.3); %%subplot(335),imshow(I_polynomial); iptsetpref('ImshowTruesize','manual');
ss sc; tx ty];
计算机图像处理
第七章 图ห้องสมุดไป่ตู้的空间变换
t_lc=maketform('affine',T); I_linearconformal=imtransform(I,t_lc,'FillValues',.3); %%subplot(332),imshow(I_linearconformal); imshow(I_linearconformal); %%7_3_c I=imread('flowers.tif'); T=[1 0.1 ;1 1;0 0 ]; t_aff=maketform('affine',T); I_affine=imtransform(I,t_aff,'FillValues',.3); %%subplot(333),imshow(I_affine) imshow(I_affine); %%7_3_d I=imread('flowers.tif'); T=[1 0 0.008; 1 1 0.01; 0 0 1];
通常采用的栅格插值方法是双线性空间 变换方法,其一般表达式为:
G(x,y)=F(ax+by+cxy+d,e+fy+gxy+h)
计算机图像处理
第七章 图像的空间变换
%%7_3_a I=imread('flowers.tif'); subplot(331),imshow(I); %%7_3_b I=imread('flowers.tif'); scale=1.2; angle=20*pi/180; tx=0; ty=0; sc=scale*cos(angle); ss=scale*sin(angle); T=[sc ss;
1)多项式卷绕 利用控制点序列为a(x,y)和 b(x,y) 找到一个近似的多项式描述。该多项式的参数能够使 多项式的取值与控制点及其位移量吻合。
计算机图像处理
第七章 图像的空间变换
2)图像分割卷绕 将控制点形成一个矩形输入栅格,通过映
射将栅格变换为输出图像中连同的水平输出 栅格,控制点为每一个输出栅格对应的顶 点,输入栅格内的各点影射为相应输出栅格 内的点。
2)旋转变换
b(x,y)=y+y0 a(x,y)=xcosθ-ysinθ
b(x,y)=xsinθ+ycosθ
3)平移放大 水平变换
a(x,y)=xcosθ-ysinθ b(x,y)=y
垂直变换 a(x,y)=x b(x,y)=(xsinθ+y)/cosθ
计算机图像处理
第七章 图像的空间变换
三.利用控制点进行变换:
大家好
1
第七章 图像的空间变换
•空间变换 •MATLAB空间变换方法 •MATLAB的图像匹配 •MATLAB的图像投影
计算机图像处理
第七章 图像的空间变换
§7.1 空间变换
一.空间变换 空间变换主要是用来保持图像中的连续性和物
体的连通性,一般都用数学函数形式来描述输入输 出图像相应像素间的空间关系。空间变换的一般表 达式为:
计算机图像处理
第七章 图像的空间变换
imshow(I_polynomial); %%7_3_f I=imread('flowers.tif'); imid=round(size(I,2)/2); I_left=I(:,1:imid); stretch=1.5; size_right=[size(I,1)round(stretch*imid)]; I_right=I(:,imid+1:end); I_right_stretched=imresize(I_right,size_right); I_piecewiselinear=[I_left I_right_stretched]; %%subplot(336),imshow(I_piecewiselinear); iptsetpref('ImshowTruesize','manual'); imshow(I_piecewiselinear); %%7_3_g
g(x,y)=f(x’,y’)=f[a(x’,y’),b(x,y)]
g(x,y) (x’,y’) a(x’,y’),b(x,y)
输出图像 空间变换后的坐标
空间变换函数
计算机图像处理
第七章 图像的空间变换
二.简单变换
简单变换用来实现图像的平移、旋转、剪切等
简单操作。如:
1)平移变换 a(x,y)=x+x0
计算机图像处理
第七章 图像的空间变换
I=imread('flowers.tif'); [nrows,ncols]=size(I); [xi,yi]=meshgrid(1:ncols,1:nrows); a1=5; a2=3; u=xi+a1*sin(pi*xi/imid); v=yi-a2*sin(pi*yi/imid); tmap_B=cat(3,u,v); resamp=makeresampler('linear','fill'); I_sinusoid=tformarray(I,[ ],resamp,[2 1],[1 2],[ ],tmap_B,.3); %%subplot(337),imshow(I_sinusoid); iptsetpref('ImshowTruesize','manual'); imshow(I_sinusoid); %%7_3_h