[r]
Trang 1CHƯƠNG 8 CÁC PHÉP TOÁN HÌNH HỌC
8.1 GIỚI THIỆU
Các phép toán hình học làm thay đổi mối quan hệ không gian giữa các đối tượng trong ảnh Những phép toán như thế có thể được xem như di chuyển các vật khắp nơi trong ảnh Tác đọng này cũng giống như khi in ảnh lên một tấm cao su, kéo giãn tấm cao
su đó và ghim nó xuống tại những điểm khác nhau Thực ra, một phép toán hình học được hiểu theo một nghĩa rộng hơn, bởi vì một điểm bất kỳ trong ảnh đầu vào nào cũng
có thể di chuyển đến bất cứ vị trí của ảnh đầu ra Một phép toán hình học không hạn chế như thế thường làm lộn xộn nội dung ảnh, do đó các phép toán hình học thường được giới hạn để giữ được một trật tự bề ngoài nào đó
Một phép toán hình học yêu cầu phải có hai thuật giải Trước hết phải có một thuật giải định nghĩa sự biến đổi không gian Phép toán này định rõ "sự chuyển động" của mỗi điểm ảnh khi nó "di chuyển" từ vị trí ban đầu đến vị trí kết thúc trong ảnh Phép nội suy mức xám cũng đòi hỏi phải có một thuật giải Nói chung, phép toán này là cần thiết bởi
vì các vị trí x, y nguyên trong ảnh đầu vào ánh xạ đến các vị trí phân số (không nguyên)
trong ảnh đầu ra và ngược lại
8.1.1 Sự biến đổi không gian
Trong hầu hết các ứng dụng, người ta thường mong muốn bảo toàn tính liên tục của các đặc tuyến cong tuyến tính (curvilinear) và sự kết nối của các đối tượng trong ảnh Một thuật giải biến đổi không gian ít hạn chế hơn có thể làm đứt đoạn các đường và các đối tượng và có khuynh hướng "làm bắn tung toé" nội dung ảnh
Người ta có thể hoàn toàn xác định được sự di chuyển của mỗi điểm ảnh trong ảnh, nhưng nó sẽ nhanh chóng trở nên khó di chuyển, thậm chí với cả những ảnh nhỏ Để thuận tiện hơn thì ta nên xác định chính xác mối quan hệ không gian giữa các điểm trong ảnh vào và các điểm trong ảnh ra Định nghĩa chung cho một phép toán hình học là
)]
, ( ), , ( [ ) ' , ' ( ) , (x y f x y f a x y b x y
trong đó f(x,y) là ảnh đầu vàu và g(x,y) là ảnh đầu ra Các hàm a(x,y) và b(x,y) xác
định sự biến đổi không gian duy nhất Nếu các hàm này liên tục thì tính liên kết trong ảnh sẽ được bảo toàn
8.1.2 Phép nội suy mức xám (Gray-Level Interpolation)
Yêu cầu thứ hai đối với một phép toán hình học là một thuật giải cho phép nội suy
các giá trị mức xám Trong ảnh đầu vào f(x,y), các giá trị mức xám chỉ được xác định tại các giá trị tích phân của x và y Tuy nhiên, biểu thức (1) nói chung sẽ chỉ ra rằng giá trị mức xám đối với ảnh g(x,y) có được từ các vị trí phân số (không nguyên) kết hợp của ảnh f(x,y) Nếu một phép toán hình học được xem là một ánh xạ từ f sang g, thì các điểm ảnh trên f có thể ánh xạ tới các vị trí giữa các điểm ảnh trên g và ngược lại Với mục
đích của phần thảo luận này,chúng ta quy định rằng các điểm ảnh phải được định vị chính xác tại các tạo độ giao nhau của lưới lấy mẫu (sampling grid)
Trang 2Để nói về sự biến đổi không gian và một thuật giải chophép nội suy mức xám, chúng
ta sẽ thực hiện một phép toán hình học Thông thường, một thuật giải nội suy mức xám được cài đặt cố định trong chương trình máy tính Tuy nhiên, thuật giải xác định sự biến đổi không gian được định rõ duy nhất cho công việc sắp tới Bởi vì thuật giải nội suy mức xám luôn giống nhau, hoặc một trong nhiều tuỳ chọn, nên sự biến đổi không gian là
sự biến đổi không gian định nghĩa phép toán hình học cụ thể
8.1.3 Sự thực hiện
Khi thực hiện một phép toán hình học, ta có thể đi theo một trong hai hướng trên Ta
có thể xem phép toán đó như là việc chuyển các mức xám từ ảnh đầu vào sang ảnh đầu
ra, lần lượt từng điểm ảnh một Nếu một điểm ảnh đầu vào ánh xạ đến một vị trí giữa bốn điểm ảnh đầu ra, thì mức xám của nó là một trong bốn điểm ảnh ra này, tuỳ thuộc
vào quy tắc của phép nội suy Chúng ta gọi nó là cách tiếp cận mang điểm ảnh sang (pixel carry-over) hay ánh xạ tiến (forward mapping) (Xem hình 8-1.)
Một sự thực hiện luân phiên, và hiệu quả hơn, được hoàn thành nhờ thuật giải lấp đầy
điểm ảnh (pixel filling) hay ánh xạ lùi (backward mapping) Trong trường hợp này, các
điểm ảnh đầu ra được ánh xạ ngược lại thành ảnh đầu vào, từng điểm ảnh một, để thiết lập các mức xám của chung Nếu một điểm ảnh ra nằm giữa bốn điểm ảnh vào thì mức xám của nó được xác định bằng phép nội suy mức xám (Hình 8-1) Sự biến đổi không gian lùi là nghịch đảo của biến đổi tiến
Thuật giải ánh xạ lùi có phần lãng phí, bởi vì nhiều điểm ảnh vào có thể ánh xạ đến các vị trí bên ngoài ảnh đầu ra Hơn nữa, mỗi điểm ảnh ra có thể được đánh địa chỉ vài lần, cùng với các điểm ảnh đầu vào tập trung thành giá trị mức xám cuối cùng của nó Nếu sự biến đổi không gian bao gồm cả sự thu nhỏ thì có thể có nhiều hơn bốn điểm ảnh đầu vào cùng tham gia Nếu có sự phóng to thì tất nhiên một số điểm ảnh đầu ra sẽ bị mất khi không có điểm ảnh đầu vào nào ánh xạ đến các vị trí gần chúng
Tuy nhiên, thuật giải ánh xạ lùi tạo ra ảnh đầu ra theo từng điểm ảnh một, từng dòng một Mức xám của mối điểm ảnh được xác định duy nhất bởi một bước nội suy giữa bốn điểm ảnh (đa số là như vậy) Dĩ nhiên, ảnh đầu vào phải được truy cập một cách ngẫu nhiên theo một cách mà được xác định bâừng sự biến đổi không gian, và việc này có thể rất phức tạp Tuy nhiên, cách tiếp cận lấp đầy điểm ảnh là thuật giải thực tiễn hơn đối với công dụng chung
HÌNH 8-1
Hình 8-1 Chuyển điểm ảnh
Trang 38.2 PHÉP NỘI SUY MỨC XÁM
Vì những điểm ảnh đầu ra ánh xạ đến những vị trí phân số trong ảnh đầu ra, cho nên chúng thường rơi vào khoảng giữa bốn điểm ảnh vào Như vậy phép nội suy là cần thiết
để xác định mức xám nào sẽ tương ứng với vị trí đó
8.2.1 Phép nội suy lân cận gần nhất (Nearest Neighbor)
Sơ đồ nội suy đơn giản nhất được gọi là nội suy bậc không (zero order), hay lân cận
gần nhất (nearest neighbor) Trong trường hợp này, mức xám của điểm ảnh đầu ra được
lấy bằng mức xám của điểm ảnh đầu vào nằm gần nhất mà điểm ảnh ra ánh xạ sang Phép nội suy này tính toán đơn giản và tạo ra những kết quả có thể chấp nhận trong nhiều trường hợp Tuy nhiên, phép nội suy lân cận gần nhất có thể cho ra những đồ tạo tác (ý muốn nói là trông ảnh như phiến đá tạc của người cổ) trong những ảnh mang cấu trúc tinh vi, với mức xám thay đổi đáng kể từ điểm ảnh này sang điểm khác Hình 8-2 đưa ra một ví dụ các ảnh quay bằng phép nội suy lân cận gần nhất, với kết quả bị hiệu ứng răng cưa ở một cạnh nào đó
8.2.2 Phép nội suy song tuyến tính (Bilinear Interpolation)
Phép nội suy bậc thứ nhất (first-order), hay song tuyến tính (binear) mang lại kết quả
mong muốn hơn phép nội suy bậc không, mà việc lập trình chỉ hơi phức tạp và tốn thời gian một chút Vì việc tạo một mặt phẳng đi qua bốn điểm là vấn đề quá khó khăn, phép nội suy bậc một trên hệ toạ độ vuông góc đòi hỏi phải có hàm song tuyến tính
Đặt f(x,y) là hàm hai biến đã biết tại đỉnh của hình khối vuông góc Giả sử ta muốn thiết lập phép nội suy giá trị hàm f(x,y) tại một điểm tuỳ ý nằm bên trong hình vuông
(Hình 8-3) Chúng ta cũng có thể thực hiện như vậy bằng sự điều chỉnh hyperbolic paraboloic, xác định bởi biểu thức song tuyến tính
d cxy by ax y x
đi qua bốn giá trị đã biết
Bốn hệ số, a đến d, được chọn để cho hàm f(x,y) điều chỉnh các giá trị đã biết tại bốn
góc Có một thuật giải đơn giản hơn để tạo ra một hàm nội suy song tuyến tính mà có thể
điều chỉnh hàm f(x,y) tại các góc Trước hết, chúng ta nội suy tuyến tính giữa hai điểm
phía trên để thiết lập giá trị của
)]
0 , 0 ( ) 1 , 0 ( [ ) 0 , 0 ( ) 0 ,
Tương tự cho hai điểm ở phía dưới
)]
1 , 0 ( ) 1 , 1 ( [ ) 1 , 0 ( ) 1 ,
Cuối cùng, chúng ta nội suy tuyến tính theo phương thẳng đứng để xác định giá trị của
)]
0 , ( ) 1 , ( [ ) 0 , ( ) ,
Thay biểu thức (3) và (4) vào biểu thức (5), khai triển, ta được
) 0 , 0 ( )]
0 , 1 ( ) 1 , 0 ( ) 0 , 0 ( ) 1 , 1 ( [
)]
0 , 0 ( ) 1 , 0 ( [ )]
0 , 0 ( ) 0 , 1 ( [ ) , (
f xy f
f f
f
y f
f x f
f y x f
Trang 4nó có cùng dạng với biểu thức (2) và vì thế nó là song tuyến tính Khi thay vào,krõ
ràng là biểu thức (6) điều chỉnh bốn giá trị đã biết của f(x,y) tại các góc của khối vuông
góc
Lưu ý rằng nếu chúng ta cho x hoặc y là hằng số (không đổi) thì biểu thức (2) trở
thành tuyến tính theo biến khác Điều này làm sáng tỏ rằng hyperbolic paraboloic là một
bề mặt giới hạn hai chiều; có nghĩa là nó cắt tất các mặt phẳng song song với mặt phẳng
xz và tất cả các mặt phẳng song song với mặt phẳng yz theo một đường thẳng
Phép nội suy song tuyến tính có thể được thực hiện trực tiếp bằng biểu thức (6), hoặc thực hiện phép nội suy tam tuyến tính (triple linear) cho bởi biểu thức (3), (4) và (5) Vì biểu thức (6) bao gồm bốn phép nhân và tám phép cộng hoặc trừ nên các chương trình biến đổi hình học đặc thù được thực hiện sau, và nó chỉ yêu cầu ba phép nhân và sáu phép cộng hoặc trừ
Khi bốn điểm ảnh lân cận liền kề được nội suy bằng biểu thức song tuyến tính, bề mặt thu được phù hợp về độ rộng tại các đường biên lân cận, nhưng không phù hợp với
độ nghiêng Vì thế, một bề mặt được tạo bởi phép nội suy song tuyến tính là liên tục, nhưng nói chung đạo hàm của nó là không liên tục tại các biên lân cận
8.2.3 Phép nội suy bậc cao hơn (Higher Order)
Trong các phép toán hình học, hiệu ứng làm trơn (smoothing effect) của phép nội suy mức xám song tuyến tính có thể làm suy giảm những chi tiết sắc xảo trong ảnh, đặc biệt
là khi phóng to Trong các ứng dụng khác, những điểm gián đoạn độ nghiêng của phép nội suy song tuyến tính có thể tạo ra những kết quả không mong muốn Trong cả hai trường hợp trên, những kết quả tính toán thêm của phép nội suy bậc cao hơn có thể được chứng minh là đúng Một hàm tương tự, nhưng phức tạp hơn, biểu thức (2) và có nhiều hơn bốn hệ số được thực hiện để điều chỉnh thông qua một trong các điểm lân cận Nếu số hệ số bằng với số điểm thì có thể tạo ra một bề mặt nội suy để điều chỉnh tại từng điểm Nếu số điểm lớn hơn số hệ số, một thủ tục điều chỉnh đường cong hay tối thiểu hoá lỗi sẽ được sử dụng Các ví dụ về các hàm nội suy bậc cao hơn là các khối lập
phương, các hàm Legendre tập trung và hàm sin( x)/x Hàm sau cùng đã được đề cập
đến trong các chương trước Phép nội suy bậc cao hơn thường được thực hiện bằng phép nhân chập Phần 2 của tài liệu này sẽ đè cập đến điều này
8.3 PHÉP BIẾN ĐỔI KHÔNG GIAN
Biểu thức (1) cho ta công thức tổng quát về phép biến đổi không gian Chúng ta cần phải xem xét một số trường hợp đặc biệt ít phức tạp hơn trước khi đi vào các phép toán hình học chung
8.3.1 Các phép biến đổi đơn giản
Nếu ta đặt
y y x b x y x
vào biểu thức (1), ta sẽ có phép toán số học, mà chie đơn thuần là sao chép f sang g
không không thay đổi gì cả Nếu ta đặt
0
0 ( , ) )
,
Trang 5chúng ta sẽ có phép toán biến đổi, mà trong đó điểm x0,y0 được tịnh tiến về gốc toạ
độ và các đặc điểm bên trong ảnh được chuyển đi một lượng x 02 y02 Dùng công thức
được là phối hợp đồng đều (homogeneous coordinate), chúng ta có thể xem mặt phẳng
x-y là mặt phẳng z = 1 của không gian x, y, z ba chiều và viết lại biểu thức (8) dưới dạng
mảtận như sau
1 1 0 0
1 0
0 1
1
) , (
) , (
0
0
y
x y
x y
x b
y x a
(9)
Đặt
d y y x b c x y x
sẽ phóng to ảnh với hệ ssó c theo hướng x và hệ số d theo hướng y Gốc toạ độ của
ảnh (thường là góc trên-trái) vẫn giữ nguyên khi nảh được “mở rộng” Theo sự phối hợp đồng đều, biểu thức (10) được viết lại như sau
1 1 0 0
1 0
0 1
1
) , (
) , (
0
0
y
x y d
x c
y x b
y x a
(11)
Đặt c = -1 ta được sự lệch hướng theo trục y,
y y x b x y x
và tương tự với d và trục x
Cuói cùng, đặt
) sin(
) cos(
) ,
và
) cos(
) sin(
) ,
tạo ra một (cw rotation through) quay một góc quanh gốc toạ độ Biểu thức này có
thể được viết theo toạ độ đồng nhất như sau
1 1 0 0
0 ) cos(
) sin(
0 ) sin(
) cos(
1
) , (
) , (
y
x y
x b
y x a
(15)
Rõ ràng chúng ta có thể kết hợp phép tịnh tiến với phép phóng đại để tạo ra ảnh "lớn thêm" một điểm nữa trừ gốc toạ độ Cũng tương tự, chúng ta có thể kết hợp phép tịnh tiến với phép quay để tạo ra phép quay quanh một điểm tuỳ ý
Toạ độ đồng nhất cung cấp một cách tương tự để xác định công thức cho các phép
tịnh tiến phức hợp Ví dụ, phép quay xung quanh điểm x 0 , y 0 được thực hiện bởi công thức
Trang 6
1 1 0 0
1 0
0 1
1 0 0
0 ) cos(
) sin(
0 ) sin(
) cos(
1 0 0
1 0
0 1
1
) , (
) , (
0 0 0
0
y
x y
x y
x y
x b
y x a
(16)
Trước tiên ảnh được tịnh tiến sao cho điểm x 0 , y 0 trùng gốc toạ độ, sau đó được quay với góc , và sau đó được tịnh tiến về lại gốc ban đầu của nó Thực hiện nhân biểu thức
(16) cho ra một phương trình tịnh tiến gần đúng Các phép tịnh tiến khác cũng có thể được xây dựng tương tự Trong cấu trúc vế phải của biểu thức, phép toán được thực hiện
từ trái sang phải
Thực hiện tách rời (Separable Inplementations) Nếu một ảnh được đưa ra đẻ
quay hay phóng to [biểu thức (11)], thì các toạ độ điểm ảnh ra a(x,y) và b(x,y) chỉ phụ thuộc vào x và y tương ứng Vì thế, có khả năng, và đôi khi cúng hiệu quả hơn, để thực
hiện phép toán trong hai bước Ví dụ, đầu tiên là thực hiện theo chiều ngang, tạo ra một ảnh trung gian Sau đó thực hiện theo chiều dọc, sử dụng ảnh trung gian như đầu vào của
nó để tạo ra kết quả cuối cùng
Catmull và Smith đã cho thấy là có khả năng để thực hiện một phép quay theo thủ tục
hai bước tương tự Giải biểu thức (13) theo x ta được
) cos(
) sin(
) , (
y y x a
và thay vào biểu thức (14) dẫn đến
) cos(
) sin(
) , ( ) , (
y x a y x
Vì thế, chúng ta có thể sử dụng biểu thức (13), biểu thức tuyến tính trong x theo dòng quét bất kỳ, theo phép kết hợp với b(x,y) = y trong phần đầu (chỉ có chiều ngang) của phép toán Sau đó chúng ta có thể dùng biểu thức (18), biểu thức tuyến tính trong y theo cột bất kỳ với a(x,y) = x trong phần hai (chỉ có chiều dọc) của phép toán
Trong phép quay loại này, các đặc điểm của ảnh được "nén" theo chiều x bởi hệ số
cos() ở bước thứ nhất, và sau đó được "bung" theo chiều y bởi hệ số sin() ở bước thứ
hai Kỹ thuật này sẽ không có kết quả với những góc là bội của 900, khi đó cosin sẽ bằng
0, và sai số sẽ hạn chế trong những góc nhỏ hơn
Đối với những ứng dụng ghi lại ảnh, góc quay yêu cầu thường nhỏ Thậm chí điều này không phải như vậy, phép quay với góc bôi của 900 vẫn có thể thực hiện bằng cách hoán đổi hàng và cột đơn giản Vì thế, có thể quay một ảnh theo một góc bất kỳ trong khi vẫn giữ góc quay thực sự giữa +450 và -450 và hệ số nén không nhỏ hơn 0.707 Sau
đó, với giới hạn này phép tịnh tiến, phóng đại và quay có các phép thực hiên một chiều
8.3.2 Các phép biến đổi chung
Đối với các phép biến đổi không gian đơn giản có liên quan, việc sử dụng một biểu thức giải tích cho biểu thức (1) có thể là thiết thực Tuy nhiên, trong nhiều ứng dụng xử
lý ảnh, phép biến đổi không gian mong muốn có quan hệ phức tạp và không tuân theo một biểu thức toán học thích hợp nào Hơn thế nữa, phép tịnh tiến điển ảnh thường thu được từ kích thước thực sự của ảnh và nó xác định rõ phép toán hình học trong các số hạng này chứ không phải trong một dạng hàm nào đó
Một ví dụ là sự điều chỉnh hình học của một ảnh thu bằng camera bị biến dạng hình
Trang 7học trong camera cho nên mô hình lưới được hiển thị sẽ không chính xác là hình chữ nhật (Xem hình 8-4) Phép biến đổi không gian cần có ở đây là làm cho mô hình lưới thành hình chữ nhật trở lại, bằng cách đó ta sẽ hiệu chỉnh được độ biến dạng do camera gây ra Sau đó cùng một phép biến đổi không gian này có thể sử dụng trên ảnh tiếp theo được số hoá trên cùng một camera (giả thiết rằng sự biến dạng không phụ thuộc vào cảnh), bằng cách đó ta có thể tạo ra ảnh không biến dạng
HÌNH 8-4
Hình 8-4 Điều chỉnh hình học của một camẻa trên tàu vũ trụ Ranger
trước đây, (a) trước điều chỉnh, (b) sau điều chỉnh
8.3.3 Xác định rõ bằng các điểm hiệu chỉnh (Specification by Control Points)
Thật là thuận lợi nếu xem phép biến đổi không gian như một chuỗi các giá trị dịch
chuyển cho các điểm hiệu chỉnh (control points) được chọn trong ảnh Bở vì chỉ một
phần nhỏ các điểm ảnh được chỉ rõ thực sự, dịch chuyển của những điểm không hiệu chỉnh phải được xác định bằng nội suy
Có một cách để thực hiện điều này, đó là khai triển các biểu thức hàm theo a(x,y) và
b(x,y) trong biểu thức (1) Thông thường, một đa thức được sử dụng như dạng tổng quát
của biểu thức biến đổi Các tham số của nó được chọn để làm cho nó phù hợp với các
điểm hiệu chỉnh và độ dịch chuyển cho trước của chúng Điều này gọi là làm cong đa
thức (polynominal warping) Nó cần thiết việc sử dụng các đa thức từ bậc năm trở xuống
đối với hàm biến đổi
Trong nhiều trường hợp, giới hạn làm cong đa thức sẽ không chứa đựng phép toán phức tạp Vì thế, một vài chương trình đối với các phép toán hình học phân rã ảnh thành những miền đa thức và sử dụng các hàm ánh xạ song tuyến tính piecewise Người sử dụng định rõ một lưới hiệu chỉnh đầu vào từ các điểm hiệu chỉnh tạo thành những đỉnh của những tứ giác kề nhau trong ảnh vào Lưới hiệu chỉnh đầu vào ánh xạ đến một lưới bên cạnh, hình chữ nhật nằm ngang trong ảnh ra Các đỉnh (các điểm hiệu chỉnh đầu vào) của tứ giác ánh xạ trực tiếp đến các đỉnh của hình chữ nhật tương ứng Tương tự, các điểm bên trong một tứ giác đầu vào ánh xạ đến những điểm bên trong hình chữ nhật đầu ra tương ứng