Cơ bản về xử lý ảnh số
159
số / giá trị thông số) để xác định các thông số cụ thể của phép biến đổi. Bạn đọc có thể tìm
hiểu các thông số này bằng cách gõ lệnh
help imtransform
từ cửa sổ lệnh của MATLAB.
Như vậy, vấn đề quan trọng nhất khi gọi hàm này là phải xác định cấu trúc của phép biến đổi.
Việc này được thực hiện bằng cách sử dụng các hàm xây dựng cấu trúc biến đổi, trong đó
thông dụng nhất là hai hàm maketform và cp2tform.
Bảng 11.4.
Các dạng biến đổi hình học có thể dùng với hàm maketform
TFORM_type
Mô tả Cú
pháp
‘affine’
Các phép biến đổi affine, bao gồm phép
dịch, phép quay, co giãn, và xén. Đường
thẳng biến thành đường thẳng, bảo toàn
tính song song nhưng không bảo toàn góc
(hình chữ nhật có thể trở thành hình bình
hành)
T=maketform(‘affine’,A)
T=maketform(‘affine’,U,X)
A là ma trận (N+1) x (N+1) hoặc (N+1) x N sao cho
vector U1 (1xN) sẽ biến thành vector X1 = U1 *
A(1:N,1:N) + A(N+1,1:N)
U và X là các ma trận sao cho mỗi hàng của U biến
thành hàng tương ứng của X sau phép biến đổi. U và X
đều có kích thước 3x2, gồm toạ độ của 3 đỉnh của 1 tam
giác.
‘projective’ Các phép biến đổi trong đó các đường
thẳng vẫn biến thành đường thẳng nhưng
các đường song song trở nên hội tụ tại 1
điểm nào đó trong hoặc ngoài ảnh (có thể
là vô cực)
T=maketform(‘projective’,A)
T=maketform(‘projective’,U,X)
A là ma trận (N+1) x (N+1) sao cho vector U1 (1xN)
sẽ biến thành vector X1 = W(1:N)/W(N+1) với W = [U
1] * A.
U và X là các ma trận sao cho mỗi hàng của U biến
thành hàng tương ứng của X sau phép biến đổi. U và X
đều có kích thước 4x2, gồm toạ độ của 4 đỉnh của 1 tứ
giác.
‘box’
Trường hợp đặc biệt của phép biến đổi
affine, trong đó mỗi chiều được dịch và
co giãn một cách độc lập với nhau
T=maketform('box',Tsize,low,high)
T=maketform('box',inbounds,outbounds)
Phép biến đổi sẽ ánh xạ vùng giới hạn bởi các đỉnh có
toạ độ xác định bởi inbounds (hoặc ones(1,N) và
Tsize) thành vùng giới hạn bởi các đỉnh có toạ độ xác
định bởi outbounds (hoặc low và high)
inbounds và outbounds : 2xN
Tsize, low, high: 1xN
‘custom’
Các phép biến đổi do người dùng tự định
nghĩa
T=maketform('custom',Ndims_in,Ndims_o
ut,forward_fcn,inverse_fcn,TData)
Ndims_in,Ndims_out: số chiều của ảnh vào và ra.
forward_fcn,inverse_fcn: các hàm thực hiện
biến đổi thuận và nghịch
TData: các thông số khác kèm theo
‘composite’
Kết hợp hai hay nhiều phép biến đổi
T=maketform('composite',T1,T2,...,TL)
T1,T2,...,TL: các phép biến đổi đã định nghĩa
trước
Cú pháp chung của hàm maketform:
>> T = maketform(TFORM_type,...)