CHƯƠNG 3 HỆ THỐNG ĐIỆN, ĐIỀU KHIỂN
4.1 Thuật toán
4.1.2 Thuật toán Canny
Trong đó: - μ là trung bình (đỉnh).
- σ2 là phương sai của các biến số x và y. - A=π r2 .
- Tham số μ quyết định tác dụng của bộ lọc Gauss lên ảnh. Độ lớn của ma trận lọc (kernel) cần được lựa chọn cho đủ rộng.
4.1.2 Thuật toán Canny
Trong chương trình đã sử Canny Detection để phân tách vùng ảnh Canny Detetion: Đây là thuật tốn phát hiện góc cạnh rất phổ biến
Tổng quát, thuật toán Canny Detection gồm có 4 bước:
1. Lấy đạo hàm của ảnh theo chiều ngang và dọc theo phân phối Gaussian
2. Tính cường độ và hướng của Gradient 3. Non-maximum supression
4. Sử dụng Threshold để tạo loại bỏ cạnh gỉa, xác định cạnh thực sự (real edge)
B1: Lấy đạo hàm theo phân phối Gaussian
Ta lấy đạo hàm theo chiều ngang x (Gx) và chiều dọc y (Gy) . Do hướng của gradient ln vng góc với các cạnh nên ảnh lấy đạo hàm theo chiềng ngang
x (Gx) sẽ thu được các nét dọc còn ảnh lấy đạo hàm theo chiều dọc (Gy) sẽ thu
được các nét ngang của bức ảnh.
Hình 4.64 Đạo hàm ảnh theo chiều ngang (x) và dọc (y)[ CITATION www2 \l 1033 ]
B2: Tính cường độ và hướng gradient
Từ kết quả tính đạo hàm theo hướng x và y trên ảnh đầu vào, ta tính cường độ gradient và hướng của mỗi pixel theo công thức:
1. Cường độ gradient:
IG=√Gx2+Gy2 (4.2)
2. Hướng của gradient:
θ=arctan 2(Gy, Gx) (4.3)
B3: Non-maximum supression
Để làm những đường biên trở nên sắc nét và mảnh hơn giống ảnh gốc ta sử dụng Non-maximum supression để loại bỏ những pixel thừa.
Hình 4.65 Cường độ và hướng của gradient[ CITATION www2 \l 1033 ]
Thuật toán Non-maximum supression như sau: với một pixel A được xác định nằm trên một cạnh. Ta sẽ có vector gradient direction ln vng góc với cạnh edge. Trên vector gradient direction ta có thể có nhiều pixel ví dụ ở đây là B và C. ba pixel A, B, C cùng miêu tả một pixel trên cạnh ban đầu nên ta phải so sánh giá trị giữa A, B và C xác định đâu là pixel nào có giá trị lớn nhất. Sau đó loại bỏ hai pixel cịn lại bằng cách đặt chúng bằng 0.
Hình 4.66 Kết quả thuật Non – maximum suppression[ CITATION www2 \l 1033 ]
B4: 'Hysteresis' thresholding
Bước này sẽ quyết định một cạnh ta dự đốn ở các bước trên nó có phải là một cạnh thật sự hay khơng. Giá trị threshold ở đây có hai ngưỡng Vmax và Vmin. Ta triển khai thuật toán dựa vào hai giá trị này như sau:
Nếu cường độ của gradient (Magnitude) > Vmax thì đó là chắc chắn là một cạnh (strong edge)
Nếu Magnitude < low threshold < Vmin thì đó là noise
Nếu Vmin < Magnitude < Vmax thì đó là một cạnh yếu chưa xác định được là cạnh hay nhiễu (weak edge)
Đối với những weak edge, nếu cạnh nào có kết nối với một strong edge thì weak edge đó là cạnh, nếu khơng sẽ là noise
Hình 4.67 Ngưỡng lựa chọn trong threshould[ CITATION www2 \l 1033 ]
Ví dụ ở hình trên A nằm trên ngưỡng Vmax nên A chắc chắn là cạnh (strong edge). C nằm giữa ngường Vmax và Vmin nên C là cạnh yếu (weak edge) nhưng C kết nối với strong edge là A nên C cũng là một cạnh. Tuy nhiên B cũng nằm trong ngưỡng giống C nhưng không kết nối với cạnh nào chắc chắn là cạnh (strong edge) nên B là nhiễu.