1. 程式人生 > >影象的空間複合變換

影象的空間複合變換

影象的複合變換指的是給給定影象進行兩次或者多次以上的平移‘映象’比例‘旋轉等基本變換,稱為級聯變換,

由於引入齊次座標後的影象變換採用了同意的巨響表示形式,其變換矩陣是3*3,複合變換指的是基本變換矩陣按照順序依次相乘,

  若對影象依次進行n次平移、映象’比例旋轉等基本變換,變換矩陣是T=T1*T2*T3...............Tn;

1、複合平移

包含多次平移為例,原影象變換後的位置(x1,y1),

將畫素平移到(x2,y2),複合平移矩陣為:


2‘複合比例變換、

包含兩次以上的比例變換


3‘複合旋轉

對影象進行多次的旋轉,最後合成的旋轉矩陣等於各自旋轉角度之和,包含多次的旋轉矩陣:


影象的投影變換:

投影變換指的是將影象畫素點的座標變換成另一種影象畫素點的座標過程,

寫成公式形式:

x'=(a11x+a12y+a13)/(a31x+a32y+a33)

y'=(a21x+a22y+a23)/(a31x+a32y+a33)

仿射變換分析:

仿射變換分析可以理解為:

1、對座標進行縮放、旋轉‘平移後取得座標

2、經過座標軸的縮放旋轉,平移後得到新座標的值

仿射變換形式:

f(x)=Ax+b;

A是變換矩陣,b表示平移向量


變換後的形式:


變換函式的介紹:

maketform函式建立空間變換結構:


例子程式碼:

<span style="font-size:18px;">clc;
clear all;
close all;

I=imread('lena.jpg');

tform=maketform('affine',[1 0 0;5 1 0;0 0 1]);
J=imtransform(I,tform);
figure;

imshow(J);
%%
udata=[0 1];
vdata=[0 1];
tform=maketform('projective',[0 0;1 0;1 1;0 1],[-4 2;-8 -3;-3 -5;6 3]);
[B xdata ydata]=imtransform(I,tform,'bicubic','udata',udata,'vdata',vdata,'size',size(I),...
    'fill',128);
figure;
imshow(B)</span>