(a)- nhân xoắn ảnh cùng với Gauss theo hướng x; (b)- nhân xoắn ảnh cùng với Gauss theo hướng y; (c)- tính đạo hàm theo hướng x; (d)- tính đạo hàm theo hướng y; (e)- độ lớn của Ggradient trước khi thực hiện qúa trình khử nhiễu; (f)- ảnh sau khi thực hiện qúa trình khử nhiễu.
Tất cả các điểm ở trong ảnh vừa được lọc đều xử lý theo cách này, độ
lớn của Gradient được đánh giá tại hai vị trí hai bên của điểm biên và độ lớn Gradient của điểm cạnh phải lớn hơn độ lớn Gradient của các láng giềng. Trong trường hợp tổng quát có 8 trường hợp chính để kiểm tra. Trên thực tế
có một số cách tính khác đạt hiệu quả, nhưng cách tính trên là phương pháp cơ bản trong tất cả các thuật toán của Canny. Hàm khử nhiễu tính độ lớn tại các điểm dựa trên phương pháp này và đặt các giá trị bằng 0 trừ khi điểm đó là cực đại địa phương.
Hình 2-23 chỉ ra các bước khác nhau của quá trình xử lý ảnh bàn cờ. Những bước đó là: nhân xoắn ảnh cùng với gauss theo hướng x, y (hình a,b);
tính đạo hàm theo hướng x, y (hình c,d); độ lớn của Gradient trước và sau khi khử nhiễu (hình e,f).
Sau khi thực hiện các bước trên của thuật toán, ta được ảnh cuối cùng là ảnh đa cấp xám. Vậy cần phải hiển thị điểm nào là điểm biên, điểm nào không phải là điểm biên. Canny mở rộng thêm thuật toán bằng cách sử dụng quá trình phân ngưỡng trễ.
Phân ngưỡng trễ sử dụng một giá trị ngưỡng cao Th và một giá trị
ngưỡng thấp Tl. Khi đó bất kỳ điểm nào trong ảnh có giá trị lớn hơn Th thì
được coi là điểm biên và được đánh dấu. Sau đó, bất kỳ điểm nào là láng giềng của điểm biên này có giá trị lớn hơn Tl cũng được coi như điểm biên và cũng được đánh dấu. Việc đánh dấu các láng giềng cũng có thể được làm như
trong quá trình phân ngưỡng trễ.
Hình 2-24 là kết quả của việc phân ngưỡng trễ sau áp dụng quá trình nonmax_suppress. Hình 2-24(a)- là một mẫu phóng to của hình 2-23(f) chỉ
một con tốt nằm giữa bàn cờ; một ngưỡng thấp của hình 2-24(b) và một ngưỡng cao của hình 2-24(c) được áp dụng vào toàn bộ ảnh; kết quả của phân ngưỡng trễ được chỉ ra ở hình 2-24(d).