(phƣơng pháp Gadient, phƣơng pháp Laplace, phƣơng pháp Canny)
Đối với ảnh không nhiễu
Cả ba phƣơng pháp đều cho kết quả rất tốt. Song phƣơng pháp phát hiện biên Sobel cho biên rõ nét nhƣng lớn, còn phƣơng pháp Laplace cho kết quả rõ nét, biên mảnh. Riêng phƣơng pháp Canny do quá trình làm trơn ảnh nên từ một ảnh không nhiễu, các biên mờ bớt đi và to ra. Do vậy biên ảnh trong phƣơng pháp Canny lớn nhƣng lại không đầy đủ.
Đối với ảnh có nhiều cạnh
Khi phát hiện biên, các cạnh không quan trọng nên đƣợc loại bỏ. Ở đây, phƣơng pháp Sobel vẫn phát hiện đƣợc biên nhƣng các biên mờ, không đƣợc rõ nét, do trong ảnh có những vùng có mức xám thấp, sự thay đổi giữa các mức xám nhỏ.
Chính vì vậy mà ảnh qua phƣơng pháp Laplace cho kết quả rõ nét hơn (do phƣơng pháp này sử dụng phƣơng pháp đạo hàm bậc hai). Tuy vậy do ảnh có rất nhiều biên nhỏ nên các biên ảnh ở trên qua phƣơng pháp này rất nhiều và rối, chúng ta nên loại bỏ các điểm dƣ thừa.
Còn đối với phƣơng pháp Canny, do quá trình “Non-maximum Suppression” và do quá trình áp dụng ngƣỡng mà các điểm biên phụ bị loại bỏ bớt đi, các biên chính đƣợc giữ lại nên biên rõ nét hơn.
Đối với ảnh có nhiều mức xám nhỏ, sự biến thiên các mức xám là thấp ta nên sử dụng phƣơng pháp Laplace, song nếu ảnh đó có quá nhiều biên thì ta nên sử dụng phƣơng pháp Canny để loại bỏ bớt các cạnh không cần quan tâm đi.
Đối với ảnh có nhiều nhiễu
Phƣơng pháp đạo hàm bậc nhất cho biên ảnh với nhiều điểm biên phụ. Còn phƣơng pháp Laplace thì tạo biên kép nên hoàn toàn không xác định đƣợc biên. Còn đối với phƣơng pháp Canny thì do quá trình làm trơn ảnh cho bớt nhiễu và quá trình “Non-maximum Suppression” để giảm bớt các biên phụ nên ảnh kết quả của phƣơng pháp Canny rất rõ nét.
Tóm lại : Đối với ảnh có nhiều cạnh hoặc nhiều nhiễu thì ta nên sử
dụng phƣơng pháp Canny để loại bỏ bớt cạnh, bỏ nhiễu và các điểm biên phụ không cần quan tâm, chỉ giữ lại các điểm biên chính theo mục đích sử dụng khác nhau.
2.2.3.5. Biến đổi Hough
a. Biến đổi Hongh cho đường thẳng
Bằng cách nào đó ta thu đƣợc một số điểm vấn đề đặt ra là cần phải kiểm tra xem các điểm có là đƣờng th ng hay không.
Bài toán:
Cho n điểm (xi; yi) i = 1..n và ngƣỡng hãy kiểm tra n điểm có tạo thành đƣờng th ng hay không?
* Ý tƣởng
Giả sử n điểm nằm trên cùng một đƣờng th ng và đƣờng th ng có phƣơng trình
y = ax + b
Vì (xi, yi) i = 1..n thuộc đƣờng th ng nên yi = axi + b, i = 1..n
b = - xia + yi; i = 1..n
Nhƣ vậy, mỗi điểm (xi; yi) trong mặt ph ng sẽ tƣơng ứng với một số đƣờng th ng b = - xia + yi trong mặt ph ng tham số a, b. n điểm (xi; yi) i = 1..n thuộc đƣờng th ng trong mặt ph ng tƣơng ứng với n đƣờng th ng trong mặt ph ng tham số a, b giao nhau tại 1 điểm và điểm giao chính là a, b. Chính là hệ số xác định phƣơng trình của đƣờng th ng mà các điểm nằm vào.
* Phƣơng pháp:
- Xây dựng mảng chỉ số a, b và gán giá trị 0 ban đầu cho tất cả các phân tử của mảng
- Với mỗi (xi; yi) và a, b là chỉ số của phần tử mảng thoả mãn b = - xia + yi tăng giá trị của phân tử mảng tƣơng ứng lên 1.
- Tìm phần tử mảng có giá trị lớn nhất nếu giá trị lớn nhất tìm đƣợc so với số phân tử lớn hơn hoặc bằng ngƣỡng cho trƣớc thì ta có thể kết luận các điểm nằm trên cùng 1 đƣờng th ng và đƣờng th ng có phƣơng trình y = ax + b trong đó a, b tƣơng ứng là chỉ số của phần tử mảng có giá trị lớn nhất tìm đƣợc:
Ví dụ:
Cho 5 điểm (0, 1); (1, 3); (2, 5); (3, 5); (4, 9) và = 80%. Hãy kiểm tra xem 5 điểm đã cho có nằm trên cùng một đƣờng th ng hay không? Hãy cho biết phƣơng trình đƣờng th ng nếu có?
- Lập bảng chỉ số a, b và gán giá trị 0 + (0, 1): b = 1 + (1, 3): b = -a + 3 + (2, 5): b = -2a + 5 + (3, 5): b = -3a + 5 + (4, 9): b = -4a + 9 - Tìm phần tử lớn nhất có giá trị 4 4/5 = 80%
- Kết luận: 5 điểm này nằm trên cùng 1 đƣờng th ng Phƣơng trình: y = 2x + 1
OH.HA = 0
b. Biến đổi Hough cho đường thẳng trong tọa độ cực
Hình 2.8. Đường th ng Hough trong tọa độ cực
Mỗi điểm (x,y) trong mặt ph ng đƣợc biểu diễn bởi cặp (r,) trong tọa độ cực.
Tƣơng tự mỗi đƣờng th ng trong mặt ph ng cũng có thể biểu diễn bởi một cặp (r,) trong tọa độ cực với r là khoảng cách từ gốc tọa độ tới đƣờng th ng đó và là góc tạo bởi trục OX với đƣờng th ng vuông góc với nó, hình 2.8 biểu diễn đƣờng th ng hough trong tọa độ Decard.
Ngƣợc lại, mỗi một cặp (r,) trong toạ độ cực cũng tƣơng ứng biểu diễm một đƣờng th ng trong mặt ph ng.
Giả sử M(x,y) là mộ điểm thuộc đƣờng th ng đƣợc biểu diễn bởi (r,), gọi H(X,Y) là hình chiếu của gốc toạ độ O trên đƣờng th ng ta có:
X= r. cos và Y= r.sin Mặt khác, ta có:
Từ đó ta có mối liên hệ giữa (x,y) và (r,) nhƣ sau: x*cos+y*sin= r. x y r H O x.cos + y.sin = r
Xét n điểm th ng hàng trong tọa độ Đề các có phƣơng trình x*cos0+y*sin0= r0. Biến đổi Hough ánh xạ n điểm này thành n đƣờng sin trong tọa độ cực mà các đƣờng này đều đi qua (r0, 0). Giao điểm (r0, 0) của n đƣờng sin sẽ xác định một đƣờng th ng trong hệ tọa độ đề các. Nhƣ vậy, những đƣờng th ng đi qua điểm (x, y) sẽ cho duy nhất một cặp (r, ) và có bao nhiêu đƣờng qua (x, y) sẽ có bấy nhiêu cặp giá trị (r, ).