Bước 2: Phân ngưỡng và tách biên ảnh

Một phần của tài liệu Xây dựng hệ thống phát hiện làn đường xe chạy (Trang 26 - 28)

- Các làn đường thường có độ tương phản cao hơn so với mặt đường và thường được đánh dấu bằng màu vàng và màu trắng. Áp dụng kỹ thuật tạo bộ lọc màu với mask màu trắng và mask màu vàng và kết hợp với máy dò cạnh để làm rõ hơn các làn đường.

o Áp dụng cv2.inRange(src, lower, upper) dùng để phát hiện một đối tượng dựa trên phạm vi giá trị pixel trong không gian màu HSV.

o Sau đó tạo 2 lớp Mask trắng và vàng, chỉ giữ lại những chi tiết bên trong vùng ảnh và bỏ hết các phần khác (bôi đen) bằng cách áp dụng hàm cv2.bitwise_or(maskedWhite,maskedYellow) tính độ lệch của các bit theo từng mảng màu giữ 2 mảng màu trắng và màu vàng.

Hình 19 Ảnh trước và sau khi xử lý.

- Xử lý phân ngưỡng tách biên cho ảnh.

o Trước khi tiến hành xử lý nhận diện biên ảnh, sẽ chuyển ảnh về chế độ ảnh xám với cv2.cvtColor(img, cv2.COLOR_BGR2GRAY).

o Kế tiếp tiến hành nâng cao chất lượng ảnh với cv2.GaussianBlur(imgGray, (5, 5), 0).

o Áp dụng đặt trưng Canny() của opencv để nhận diện biên ảnh.

o Tiếp tục nâng cao chất lượng ảnh sau nhận diện biên bằng phương pháp tăng độ ổn định cho các điểm ảnh với việc làm giãn nở các điểm ảnh và giảm độ sói mòn điểm ảnh với imgDial = cv2.dilate(imgCanny,kernel,iterations=1) với độ giãn 39 nở điểm ảnh là 1 và imgErode = cv2.erode(imgDial,kernel,iterations=1) với độ sói mòn là 1.

o Cuối cùng là kết hợp ảnh đã được xử lý bộ lọc màu và nhận diện biên ảnh lại với nhau để tăng độ trực quan.

Hình 21 Mask ảnh trắng và Mask ảnh vàng.

Hình 22 Ảnh áp dụng

Một phần của tài liệu Xây dựng hệ thống phát hiện làn đường xe chạy (Trang 26 - 28)

Tải bản đầy đủ (PDF)

(43 trang)