Tải bản đầy đủ (.pdf) (4 trang)

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Ô

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (287.79 KB, 4 trang )

ĐẠ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 đỏ
a. Lấy thông tin 3 lớp màu
b. 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ả


×