Kỹ thuật nắn chỉnh dựa trên cơ sở vector

Một phần của tài liệu Nắn chỉnh biến dạng hình học và ứng dụng (Trang 43 - 47)

Trong trường hợp trên giữa các điểm điều khiển không có sự ràng buộc nào. Khi các điểm đặc trưng được xác định sao cho chúng tạo thành từng cặp điểm, tức là các vector, ta sẽ có phương thức nắn chỉnh trên cơ sở các vector.

a. Chuyển đổi với một cặp vector

Xét trường hợp chỉ có một cặp vector: PQ trên ảnh đích và P’Q’ trên ảnh nguồn. Khi đó với mỗi điểm X trên ảnh đích, điểm X’ tương ứng với X trên ảnh nguồn được tính như sau:

2 2 . . ( ) PX PQ u PQ PX perpendicular PQ V PQ         Đặt ' 'A B = perpendicular(P Q' '  ) ) ' ' ( ) ' ' ( ' ' P u Q P v B A X       

Trong đó: Perpendicular() trả lại vector vuông góc, cùng chiều dài với vector vào. Hướng của perpendicular() có thể chọn một trong hai hướng:

Nếu quay perpendicular() một góc 900

theo chiều kim đồng hồ quanh gốc của vector perpendicular() thì perpendicular() có hướng trùng với hướng của vector vào.

Nếu quay perpendicular() một góc 900 ngược chiều kim đồng hồ quanh

gốc của vector perpendicular() thì perpendicular() có hướng trùng với hướng của vector vào.

Nếu đã chọn hướng nào thì trong suốt quá trình thực hiện biến đổi phải tuân theo hướng đã chọn.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Giá trị u thể hiện chiều dài của đoạn thẳng và v là khoảng cách tới đường thẳng. Giá trị của u tăng từ 0 đến 1 khi điểm ảnh tiến từ P đến Q và nhỏ hơn 0 hoặc lớn hơn 1 thì sẽ vượt qua vùng giới hạn. Giá trị của v là khoảng cách từ điểm ảnh đến đoạn thẳng.

Nếu có một cặp vector thì thuật toán biến đổi được cho như sau: Với mỗi điểm ảnh X trên ảnh đích:

Tìm cặp giá trị tương ứng (u,v)

Tìm điểm X’ trên ảnh nguồn dựa trên (u,v) vừa xác định

ImgDestination.X = ImgSource.X’

Hình 2.15 minh hoạ cho thuật toán, cách tìm điểm X’ khi biết PQ, P’Q’ và điểm ảnh X.

Trong đó ảnh góc trên bên trái là ảnh gốc, các ảnh còn lại là các ảnh kết quả với đoạn thẳng được xác định tương ứng.

Hình 2.14 Cặp đoạn thẳng đơn

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

b. Chuyển đổi với nhiều cặp vector

Biến đổi với nhiều cặp vector sẽ phức tạp hơn so với một cặp vector. Trong thuật toán này chúng ta sẽ tính toán thêm các giá trị weight cho sự biến đổi của từng vector. Mỗi điểm X’ sẽ được tính toán cho từng cặp vector. Độ dịch chuyển Di=Xi’-X đo sự sai khác giữa vị trí của điểm ảnh nguồn và đích. Một trọng số dựa trên những độ dịch chuyển này sẽ được tính toán. Trọng số này sẽ được xác định bởi khoảng cách từ X đến vector. Giá trị trọng số này được thêm với X để xác định điểm X’ cần lấy trên ảnh nguồn. Trường hợp vector đơn sẽ là một trường hợp đặc biệt của trường hợp nhiều vector nếu như giá trị weight không bao giờ là 0 tại mọi điểm trên ảnh. Giá trị weight là lớn nhất nếu điểm ảnh nằm đúng trên vector và sẽ là bé nhất nếu nó nằm xa vector nhất.

Công thức tính weight được cho như sau:

( ) b p length W a dist         Trong đó:

Length là chiều dài của vector, dist là khoảng cách từ điểm ảnh đến vector, a, b, p là các hằng số dùng để thay đổi quan hệ giữa các vector.

Nếu a tiến tới 0 và dist đúng bằng 0 thì weight tiến tới vô cực. Khi đó điểm ảnh nằm trên vector gốc sẽ được ánh xạ đúng đến vị trí tương ứng trên vectơ đích. Giá trị a lớn sẽ cho kết quả nắn chỉnh tốt hơn (trơn hơn). Giá trị b thể hiện sự tác động của chiều dài vector đến các điểm ảnh. Nếu b lớn thì điểm ảnh chỉ bị tác động bởi một vector có khoảng cách đến nó ngắn nhất. Nếu b=0 thì điểm ảnh sẽ bị tác động như nhau đối với mọi vector. Giá trị hay sử dụng của b là [0.5;2]. Giá trị của p là [0;1]. Nếu p = 0 thì tất cả các weight không phụ thuộc vào chiều dài vector. Nếu p=1 thì vector nào dài hơn sẽ có weight lớn hơn.

Thuật toán được cho như sau: For mỗi điểm X trên ảnh đích DSUM=(0,0)

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

For mỗi vector PiQi

Tính u, v dựa trên Pi,Qi

Tính X’i dựa trên u,v và Pi’Qi’ (adsbygoogle = window.adsbygoogle || []).push({});

Di=Xi’-X

dist = khoảng cách từ X tới PiQi

weight= ((lengthp)/(a+dist))b

DSUM=DSUM+Di*weight

weightsum=weightsum+weight

X’=X+DSUM/weightsum

ImgDestination.X=ImgSource.X’

Hình 2.16 là một minh hoạ cho việc tính toán điểm X’ trên cơ sở biết X và các cặp vector tương ứng.

Hình 2.16 Nhiều cặp vector

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Với kỹ thuật vector khi thực hiện bóp méo một hình ảnh thì hình ảnh không còn ở trạng thái ban đầu nữa, tuy nhiên khi các tọa độ ánh xạ sang ảnh đích thì một số pixel ảnh sẽ không thể ánh xạ sang được, vì vật sẽ khó khăn cho việc chuyển đổi màu của ảnh.

Việc xác định lại màu sắc cho ảnh lại phải sử dụng đến thuật toán tô màu (theo làn, theo dòng,..). Nhưng để sử dụng được các thuật toán này thì việc tìm tọa độ của các điểm ảnh là rất quan trọng. Hình 2.18 cho thấy khi bóp méo ảnh thì tọa độ thay đổi phụ thuộc vào hàm chuyển đổi f, hàm này có thể được xác định bằng thuật toán vector như đã trình bày ở trên.

Một phần của tài liệu Nắn chỉnh biến dạng hình học và ứng dụng (Trang 43 - 47)