Professional Documents
Culture Documents
BIA
BIA
BIA
*******
MỤC LỤC
CHƯƠNG 1 .......................................................................................................................... 5
GIỚI THIỆU ĐỀ TÀI .............................................................................................................. 5
1.1 Lý do chọn đề tài: .................................................................................................... 5
1.2 Nội dung đề tài: ....................................................................................................... 5
1.3 Giới hạn đề tài: ........................................................................................................ 8
CHƯƠNG 2........................................................................................................................... 9
XỬ LÝ BIỂN SỐ ................................................................................................................... 9
2.1 TÁCH BIỂN SỐ ...................................................................................................... 9
2.1.1 TÌM VÙNG MÀU TRẮNG ....................................................................... 10
2.1.2 XÁC ĐỊNH VÙNG CHỨA BIỂN SỐ VÀ TÁCH LẤY: .............................. 13
2.2. PHÂN ĐOẠN KÍ TỰ ............................................................................................. 14
2.2.1 Tổng quan về phân đoạn kí tự: .................................................................. 14
2.2.2 LƯU ĐỒ: ................................................................................................. 15
2.3 TẠO THƯ VIỆN ẢNH :......................................................................................... 17
2.3.3 NGUYÊN LÝ: .......................................................................................... 17
2.3.4 LƯU ĐỒ: ................................................................................................. 17
2.3.5 HÀM XỬ LÝ: .......................................................................................... 18
2.4 NHẬN DẠNG KÝ TỰ: .......................................................................................... 20
2.4.1 NGUYÊN LÝ: .......................................................................................... 20
2.4.2 LƯU ĐỒ: ................................................................................................. 20
2.4.3 HÀM XỬ LÝ: .......................................................................................... 22
CHƯƠNG 3 ........................................................................................................................ 24
GIAO DIỆN ......................................................................................................................... 24
3.1 TẠO GUIDE: ........................................................................................................ 24
3.1.1 GUIDE LÀ GÌ: ...................................................................................................... 24
3.1.2 KHAI BÁO VÀ SỬ DỤNG GUIDE TRONG MATBAL:............................ 24
3.2 GIAO DIỆN NHẬN DIỆN BIỂN SỐ XE ................................................................ 27
3.2.1 GIAO DIỆN: ............................................................................................ 27
3.2.2 XỬ LÝ XUẤT ẢNH VÀ XUẤT NODEPAD: ............................................. 27
CHƯƠNG 4 ........................................................................................................................ 29
KẾT QUẢ THỰC HIỆN – HƯỚNG PHÁT TRIỂN ............................................................... 29
NHÓM:1
1
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
NHÓM:1
2
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
NHÓM:1
3
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
LỜI CẢM ƠN
Trong thời gian thực hiện đồ án này, chúng em đã nhận được sự giúp đỡ nhiệt
tình từ các bạn trong khoa Chất Lượng Cao, các thầy cô. Chúng em xin gửi lời cảm ơn
đến tất cả bạn, thầy cô và đặc biệt là Thầy Nguyễn Thanh Hải đã tận tình giúp đỡ để
chúng em có thể hoàn thành topic môn học này về mô hình cũng như cách thức trình
bày nội dung của đề tài.
Trong quá trình thực hiện có thể chưa đáp ứng được những yêu cầu của thầy, rất
mong sự đóng góp ý kiến, đánh giá, nhận xét về nội dung và hình thức trình bày của
thầy, cô và các bạn để từ đó chúng em có thể rút ra được nhiều bài học cũng như tích
lũy thêm kinh nghiệm cho những môn học tiếp theo.
NHÓM:1
4
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
CHƯƠNG 1
NHÓM:1
5
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
Hệ thống sẽ xử lí hình ảnh chụp biển số xe được đưa vào phần mềm matlab và
xuất ra file notepad biển số xe đó.
Quá trình nhận biết được thực hiện như sơ đồ sau:
NHÓM:1
6
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
Tách biển số
Phân đoạn kí tự
Nhận dạng kí tự
NHÓM:1
7
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
Do thời gian cũng như kiến thức trong xử lí ảnh của nhóm có hạn nên nhóm sẽ
có những giới hạn, điều kiện với biển số xe như:
Để thực hiện được hai bước trên, nhóm đã kết hợp sử dụng nhiểu giải thuật và
phương pháp xử lí ảnh:
Lấy những hình ảnh đã được chụp từ trước để đưa vào matlab xử lí chứ
không kết nối trực tiếp với camera.
Xử lí trực tiếp trên phần mềm matlab, chưa tạo được GUI dành cho
người dùng.
Biển số xe có 1 hàng, số lượng ký tự từ 10 trở xuống.
Biển số phải còn nguyên vẹn, không bị che khuất, không bị chói bởi ánh
sáng.
Góc nghiêng của biển số không quá 45 độ so với phương ngang
NHÓM:1
8
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
CHƯƠNG 2
XỬ LÝ BIỂN SỐ
NHÓM:1
9
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
Xác định vùng Đánh số các vùng màu trắng đã lọc ra ở bước trên và
chứa biển số tìm ra vùng có diện tích lớn nhất. Đó là vùng của biển số
và tách lấy xe.
Sau đó, lấy ảnh âm bản của biến số xe đã chuyển tử
ảnh RGB trước đó, cắt đúng với vị trị vùng diện tích lớn
nhất ta vừa lọc ra ở bước trên để lấy biển số.
Ảnh âm bản
của biển số xe
Khi chuyển ảnh RGB sang nhị phân, ta sẽ gặp phải vấn đề đường viền của
khung biến số xe và kí tự bị đứt nét, khiến việc làm đầy 2 thành phần đó bị ảnh hưởng.
Do đó, ta phải làm dầy các đường viền đó để có thể làm đầy vùng viến số và các kí tự.
Sau đó, ta loại bỏ bớt những thành phần tạp chất không liên quan để chừa lại những
vùng diện tích lớn, có khả năng là biển số xe.
NHÓM:1
10
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
Bắt đầu
NHÓM:1
11
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
HÌNH 2. 8 ĐƯA ẢNH RGB VÀO HÌNH 2. 3 CHUYỂN ẢNH RGB SANG 1 BIT
HÌNH 2. 7 CHUYỂN SANG ẢNH CHỈ LẤY HÌNH 2. 6 LÀM ĐẦY CÁC ĐƯỜNG VIỀN
Chuyển sang ảnh chỉ lấy Làm đầy các đường viền
đường viền
HÌNH 2. 4 LÀM ĐẦY CÁC VÙNG MÀU TRẮNG HÌNH 2. 5 XÓA BỎ NHỮNG THÀNH PHẦN MÀU
TRẮNG NHỎ
NHÓM:1
12
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
Lọc ra vùng có diện tích lớn nhất và cắt đúng vị trí đó với ảnh 1 bit ban đầu để
lấy biển số.
1
Đặt biến chứa vùng màu trắng có diện tích lớn nhất
area = Iprops.Area;
Đặt biến lưu vị trí của vùng màu trắng lớn nhất
boundingBox = Iprops.BoundingBox;
I < count
S
area < Iprops(i).Area
S
Aarea = Iprops(i).Area;
BboundingBox = Iprops(i).BoundingBox;
im = imcrop(imbin, boundingBox)
NHÓM:1
13
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
HÌNH 2. 11 CẮT ĐÚNG VỊ TRÍ VÙNG DIỆN TÍCH TRÊN Ở HÌNH “IMBIN” SẼ
KHỚP NGAY VỊ TRÍ CỦA BIẾN SỐ
NHÓM:1
14
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
Để thực hiện việc phân vùng kí tự ta phải dựa vào tỉ lệ kích thước kí tự và
khung biển số, cụ thể tỉ lệ như sau:
Chiều rộng của kí tự sẽ nhỏ hơn 1/2 chiều dài của khung biển số.
Chiều dài của kí tự sẽ lớn hơn 1/3 chiều dài của khủng biển số.
ow: chiều rộng kí tự
oh: chiều dài kí tự
w: chiều rộng kí tự
h: chiều dài kí tự
oh h
ow
NHÓM:1
15
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
Kết thúc
NHÓM:1
16
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
Ta tạo thư viện ảnh đã xử lý hình và số ở dạng 1 bit (0 và 1) với kích thước
ảnh 24x42.
Ta đọc ảnh từ thư mục đã xử lý ảnh chữ và số như hình ở trên và vào mảng kí
hiệu chữ và số.
Chuyển đổi file ảnh trên thành ô có kích thước 24x42 để xử lý các bit 0 và 1.
Lưu và mảng chức để xử lý ở hàm con readLetter .
NHÓM:1
17
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
Bắt đầu
Sử dụng hàm
mat2cell chuyển đổi
mảng chứa Letter và
Number thành mảng
ô 42x24
Kết thúc
NHÓM:1
18
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
K=imread('char/K.bmp');L=imread('char/L.bmp');
M=imread('char/M.bmp');N=imread('char/N.bmp');
O=imread('char/O.bmp');P=imread('char/P.bmp');
Q=imread('char/Q.bmp');R=imread('char/R.bmp');
S=imread('char/S.bmp');T=imread('char/T.bmp');
U=imread('char/U.bmp');V=imread('char/V.bmp');
W=imread('char/W.bmp');X=imread('char/X.bmp');
Y=imread('char/Y.bmp');Z=imread('char/Z.bmp');
Afill=imread('char/fillA.bmp');
Bfill=imread('char/fillB.bmp');
Dfill=imread('char/fillD.bmp');
Ofill=imread('char/fillO.bmp');
Pfill=imread('char/fillP.bmp');
Qfill=imread('char/fillQ.bmp');
Rfill=imread('char/fillR.bmp');
%So
one=imread('char/1.bmp'); two=imread('char/2.bmp');
three=imread('char/3.bmp');four=imread('char/4.bmp');
five=imread('char/5.bmp'); six=imread('char/6.bmp');
seven=imread('char/7.bmp');eight=imread('char/8.bmp');
nine=imread('char/9.bmp'); zero=imread('char/0.bmp');
zerofill=imread('char/fill0.bmp');
fourfill=imread('char/fill4.bmp');
sixfill=imread('char/fill6.bmp');
sixfill2=imread('char/fill6_2.bmp');
eightfill=imread('char/fill8.bmp');
ninefill=imread('char/fill9.bmp');
ninefill2=imread('char/fill9_2.bmp');
NHÓM:1
19
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
- hàm mat2cell:Chuyển đổi mảng thành mảng ô có các ô chứa các chuỗi con:
NewTemplates= mat2cell(character,42,[24 24 24 24 24 24 24
24 ...
24 24 24 24 24 24 24 ...
24 24 24 24 24 24 24 ...
24 24 24 24 24 24 24 ...
24 24 24 24 24 24 24 ...
24 24 24 24 24 24 24 ...
24 24 24 24 24 24 24]);
NHÓM:1
20
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
Begin
Ghi lại ký tự
NHÓM:1
21
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
- Hàm có tác dụng đọc ký tự từ hình ảnh nhị phân của ảnh
- Xuất kí tự trong lớp char từ hình ảnh nhị phân đầu vào—lớp char từ file
thư viện create_templetes.
function letter=readLetter(snap)
Sau khi ảnh được đưa vào hàm readletter.
Hàm này sẽ tự động gọi hàm thư viện chứa các ký tự có sẵn
Đối chiếu các ký tự đó để tìm ra ký tự đúng nhất rồi ghi lại ký tự.
%Hàm có tác dụng đọc ký tự từ hình ảnh nhị phân của
ảnh
%Xuất kí tự trong lớp char từ hình ảnh nhị phân đầu
vào—lớp char từ file thư viện create_templetes.
load NewTemplates
% tải mẫu của kí tự vào trong ô nhớ create_templetes
snap=imresize(snap,[42 24]);
% thay đổi kích thước ảnh đầu vào để có thể so sánh
với hình ảnh mẫu
comp=[ ];
for n=1:length(NewTemplates)
sem=corr2(NewTemplates{1,n},snap);
% Đối chiếu hình ảnh đầu vào với hình ảnh trong mẫu
phù hợp nhất
comp=[comp sem];
% hiển thị giá trị tương quan cho mỗi kí tự của mẫu
end
vd=find(comp==max(comp)); % Find the index which
correspond to the highest matched character.
% thực hiện so sánh để tìm các kí tự phù hợp nhất
%display(max(comp));
%*-*-*-*-*-*-*-*-*-*-*-*-*-
% Accodrding to the index assign to 'letter'.
% Alphabets listings.
if vd==1 || vd==2
letter='A';
elseif vd==3 || vd==4
letter='B';
…
NHÓM:1
22
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
NHÓM:1
23
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
CHƯƠNG 3
GIAO DIỆN
Trong Matlab thì GUI hỗ trợ bạn khá là đầy đủ các chương trình để bạn thực hiện. Như
là tính toán với phép toán LOGIC, lập trình không gian 2D, 3D, đọc dữ liệu từ Excel, sử lý
hình ảnh,… Nó được thực hiện thông qua hàm xây dựng sẵn là CALLBACK. Bạn không cấn
phải biết nhiều về cấu trúc của trương trình mà vẫn có thể thực hiện được.
Lập tức cửa sổ GUIDE Quick Start xuất hiện nên như hình phía dưới.
NHÓM:1
24
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
NHÓM:1
25
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
NHÓM:1
26
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
Liên kết và sử dụng để thực hiện công việc cách khai báo trong file có đuôi
“fig”.
3.2 GIAO DIỆN NHẬN DIỆN BIỂN SỐ XE
3.2.1 GIAO DIỆN:
Giao diện guide gồm 2 Text để hiển thị chữ “Ảnh nhập từ Browse” và “NHÓM
1 NHẬN DIỆN BIỂN SỐ XE”
3 nút nhấn để lấy ảnh từ thư mục ảnh, xuất ảnh 1 bit và xuất dưới dạng notepad
2 Axes để hiển thị ảnh dưới nhập từ Browse và xuất ảnh 1 bit.
NHÓM:1
27
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
Ở nút “Browse”, “Ảnh 1 bit”, “Xuất file notepad” lần lượt xử lý công
việc lấy ảnh từ thư mục xuất ảnh dưới dạng 1 bit và xuất file notepad.
2 axes1 và axes2 xử lý phần hiển thị ảnh khi có ảnh nhập từ Browse.
NHÓM:1
28
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
CHƯƠNG 4
Tóm lại, sau khi thực hiện đề tài này, chúng em được hiểu rõ hơn về quy trình
nhận diện hình ảnh. Để nhận diện chính xác phụ thuộc vào nhiều yếu tố ánh sáng, môi
trường,..vv Với đề tài “nhận diện biển số xe thông qua xử lý ảnh”. Do hạn chế về
mặt thời gian nên đề tài vẫn còn nhiều sai sót và mặt hạn chế về số hàng nhận diện
biển số mong thầy và các bạn thông cảm.
Để cho khả năng ứng dụng của đề tài này vào thực tế rộng rãi hơn chúng ta có thể sử
dụng camera chuyên nghiệp để chụp ảnh tốt hơn, thiết lập môi trường để tăng chất
lượng ảnh…
Mọi đóng góp đề tài này để được tốt hơn, xin thầy và các bạn gởi về mail:
nhom1xlaspkt@gmail.com
NHÓM:1
29
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
NHÓM:1
30
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
CODE
Code chính:
% close all;
% clear all;
global im;
global duongdan;
global imbin;
im = imread(duongdan);
imbin = im2bw(im);
im = edge(imbin, 'sobel');
im = imfill(im, 'holes');
Iprops=regionprops(im,'BoundingBox','Area', 'Image');
area = Iprops.Area;
count = numel(Iprops);
boundingBox = Iprops.BoundingBox;
for i=1:count
if area<Iprops(i).Area
area = Iprops(i).Area;
boundingBox = Iprops(i).BoundingBox;
end
end
im = imcrop(imbin, boundingBox);
im = ~im;
Iprops=regionprops(im,'BoundingBox','Area', 'Image');
count = numel(Iprops);
global noPlate;
noPlate=[];
[h, w] = size(im);
for i=1:count
ow = length(Iprops(i).Image(1,:));
oh = length(Iprops(i).Image(:,1));
if ow<(h/2) & oh>(h/3)
letter=readLetter(Iprops(i).Image);
noPlate=[noPlate letter];
NHÓM:1
31
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
end
end
%CREATE TEMPLATES
%Letter
A=imread('char/A.bmp');B=imread('char/B.bmp');
C=imread('char/C.bmp');D=imread('char/D.bmp');
E=imread('char/E.bmp');F=imread('char/F.bmp');
G=imread('char/G.bmp');H=imread('char/H.bmp');
I=imread('char/I.bmp');J=imread('char/J.bmp');
K=imread('char/K.bmp');L=imread('char/L.bmp');
M=imread('char/M.bmp');N=imread('char/N.bmp');
O=imread('char/O.bmp');P=imread('char/P.bmp');
Q=imread('char/Q.bmp');R=imread('char/R.bmp');
S=imread('char/S.bmp');T=imread('char/T.bmp');
U=imread('char/U.bmp');V=imread('char/V.bmp');
W=imread('char/W.bmp');X=imread('char/X.bmp');
Y=imread('char/Y.bmp');Z=imread('char/Z.bmp');
Afill=imread('char/fillA.bmp');
Bfill=imread('char/fillB.bmp');
Dfill=imread('char/fillD.bmp');
Ofill=imread('char/fillO.bmp');
Pfill=imread('char/fillP.bmp');
Qfill=imread('char/fillQ.bmp');
Rfill=imread('char/fillR.bmp');
%Number
one=imread('char/1.bmp'); two=imread('char/2.bmp');
three=imread('char/3.bmp');four=imread('char/4.bmp');
five=imread('char/5.bmp'); six=imread('char/6.bmp');
seven=imread('char/7.bmp');eight=imread('char/8.bmp');
nine=imread('char/9.bmp'); zero=imread('char/0.bmp');
zerofill=imread('char/fill0.bmp');
fourfill=imread('char/fill4.bmp');
sixfill=imread('char/fill6.bmp');
sixfill2=imread('char/fill6_2.bmp');
eightfill=imread('char/fill8.bmp');
ninefill=imread('char/fill9.bmp');
ninefill2=imread('char/fill9_2.bmp');
%*-*-*-*-*-*-*-*-*-*-*-
letter=[A Afill B Bfill C D Dfill E F G H I J K L M N O Ofill P Pfill Q
Qfill R Rfill S T U V W X Y Z];
number=[one two three four fourfill five six sixfill sixfill2 seven eight
eightfill nine ninefill ninefill2 zero zerofill];
NHÓM:1
32
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
character=[letter number];
NewTemplates=mat2cell(character,42,[24 24 24 24 24 24 24 24 ...
24 24 24 24 24 24 24 ...
24 24 24 24 24 24 24 ...
24 24 24 24 24 24 24 ...
24 24 24 24 24 24 24 ...
24 24 24 24 24 24 24 ...
24 24 24 24 24 24 24]);
save ('NewTemplates','NewTemplates')
clear all
end
vd=find(comp==max(comp)); % Find the index which correspond to the highest
matched character.
%display(max(comp));
%*-*-*-*-*-*-*-*-*-*-*-*-*-
% Accodrding to the index assign to 'letter'.
% Alphabets listings.
if vd==1 || vd==2
letter='A';
elseif vd==3 || vd==4
letter='B';
elseif vd==5
letter='C';
elseif vd==6 || vd==7
letter='D';
elseif vd==8
letter='E';
elseif vd==9
letter='F';
NHÓM:1
33
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
elseif vd==10
letter='G';
elseif vd==11
letter='H';
elseif vd==12
letter='I';
elseif vd==13
letter='J';
elseif vd==14
letter='K';
elseif vd==15
letter='L';
elseif vd==16
letter='M';
elseif vd==17
letter='N';
elseif vd==18 || vd==19
letter='O';
elseif vd==20 || vd==21
letter='P';
elseif vd==22 || vd==23
letter='Q';
elseif vd==24 || vd==25
letter='R';
elseif vd==26
letter='S';
elseif vd==27
letter='T';
elseif vd==28
letter='U';
elseif vd==29
letter='V';
elseif vd==30
letter='W';
elseif vd==31
letter='X';
elseif vd==32
letter='Y';
elseif vd==33
letter='Z';
%*-*-*-*-*
% Numerals listings.
elseif vd==34
letter='1';
elseif vd==35
letter='2';
elseif vd==36
letter='3';
elseif vd==37 || vd==38
letter='4';
elseif vd==39
letter='5';
elseif vd==40 || vd==41 || vd==42
letter='6';
elseif vd==43
letter='7';
elseif vd==44 || vd==45
NHÓM:1
34
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
letter='8';
elseif vd==46 || vd==47 || vd==48
letter='9';
else
letter='0';
end
end
giao diện:
function varargout = untitled(varargin)
% UNTITLED MATLAB code for untitled.fig
% UNTITLED, by itself, creates a new UNTITLED or raises the existing
% singleton*.
%
% H = UNTITLED returns the handle to a new UNTITLED or the handle to
% the existing singleton*.
%
% UNTITLED('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in UNTITLED.M with the given input
arguments.
%
% UNTITLED('Property','Value',...) creates a new UNTITLED or raises
the
% existing singleton*. Starting from the left, property value pairs
are
% applied to the GUI before untitled_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property
application
% stop. All inputs are passed to untitled_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
NHÓM:1
35
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Outputs from this function are returned to the command line.
function varargout = untitled_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
axes(handles.axes1)
axis tight;
imshow(duongdan);
kode4u
NHÓM:1
36
XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE
axes(handles.axes2)
cla
axis tight;
global im;
imshow(im);
NHÓM:1
37