Phân tích xử lý ảnh: Nhận dạng đường cấm ô tô

• Loại bỏ các đối tượng có kích thước nhỏ • Tách những đối tượng có dạng hình tròn • Tìm biên của các đối tượng • Kiểm tra biên có dạng hình tròn -> tách ra và lưu vào ma trận có cùng kích thước Vị trí là biên -> gán 1 cho ma trận mới Ngược lại -> gán 0 Áp ma trận vừa tìm dc lên ma trận ban đầu Những pixel nằm trong mặt nạ này -> giữ nguyên Nằm ngoài -> gán = 255

doc4 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2531 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Phân tích xử lý ảnh: Nhận dạng đường cấm ô tô, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA TOÁN TIN PHÂN TÍCH XỬ LÝ ẢNH BÁO CÁO BÀI TẬP THỰC HÀNH NHẬN DẠNG ĐƯỜNG CẤM Ô TÔ Giáo viên hướng dẫn : Th.S Phạm Thế Bảo Nhóm thực hiện : Nguyễn Việt Hùng 0511123 Nguyễn Đức Thành 0511214 Cao Quốc Toản 0511233 Yêu cầu bài toán Xác định đường cấm ô tô thông qua việc nhận dạng biển báo cấm ô tô ? Tìm các đối tượng màu đỏ Lấy thông tin 3 lớp màu Chuyển về ảnh nhị phân function kq = tach_doi_tuong_do(a) b1=a(:,:,1); b2=a(:,:,2); b3=a(:,:,3); s=size(a); for i=1:s(1) for j=1:s(2) Y(i,j)=0.2989*b1(i,j)+0.5866*b2(i,j)+0.1145*b3(i,j); Cr(i,j)=(b1(i,j)-Y(i,j))/(2-2*0.2989); end end for i=1:s(1) for j=1:s(2) if Cr(i,j)>=25 & Cr(i,j)<=127 c1(i,j)=1; else c1(i,j)=0; end end end kq = c1; Lấp ‘lổ’ trong các đối tượng function kq = search_adjust_red_object(a) b = tach_doi_tuong_do(a); b = imfill(b,'holes'); se =strel('square',35); b = imopen(b,se); kq = b; Loại bỏ các đối tượng có kích thước nhỏ Tách những đối tượng có dạng hình tròn Tìm biên của các đối tượng Kiểm tra biên có dạng hình tròn -> tách ra và lưu vào ma trận có cùng kích thước Vị trí là biên -> gán 1 cho ma trận mới Ngược lại -> gán 0 Áp ma trận vừa tìm dc lên ma trận ban đầu Những pixel nằm trong mặt nạ này -> giữ nguyên Nằm ngoài -> gán = 255 function kq = cut_circle(a,anh_mau) % nhap : bien doi tuong va anh ban dau % xuat : la hinh tron duoc giu nguyen phan ben ngoai mau trang minx = min(a(:,1)); maxx = max(a(:,1)); miny = min(a(:,2)); maxy = max(a(:,2)); x0 = (minx+maxx)/2; y0 = (miny+maxy)/2; r = max(maxx-minx,maxy-miny)/2; %tang them ban kinh cua vong tron vi bi giam nho dung strel r = r+r/20; for i = 1:size(anh_mau,1) for j = 1:size(anh_mau,2) if sqrt((i-x0)^2+(j-y0)^2)>r anh_mau(i,j,:)=255; end end end %cat hinh tron tu anh ban dau l = r; tam = imcrop(anh_mau,[y0-l x0-l 2*l 2*l]); kq = tam; Kiểm tra có phải là biển báo cấm ôtô Tính tỉ lệ pixel màu trắng so với tổng số pixel trong khoảng bán kính 3R/4 So sánh với ngưỡng khảo sát -> rút ra kết luận function kq=la_bien_bao_oto(bien,a) kq = 1; b=cut_circle(bien,a); if ~has_while_background(b) kq = 0; return; end Kết quả

Các file đính kèm theo tài liệu này:

  • docXLA.doc
  • pdfXLA.pdf