Tải bản đầy đủ (.doc) (25 trang)

NHẬN DIỆN BIỂN số XE DÙNG MATLAB ( có code )

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 (578.02 KB, 25 trang )

ĐỒ ÁN 3

NHẬN DẠNG BIỂN SỐ XE

DANH MỤC CÁC HÌNH VẼ



DANH MỤC CÁC TỪ VIẾT TẮT
RGB : Red-Green-Blue
UART : Universal Asynchronous Receiver – Transmitter
PC : Personal computer
COM port : Communications port


MỤC LỤC
DANH MỤC CÁC HÌNH VẼ.............................................................................................I
DANH MỤC CÁC TỪ VIẾT TẮT.................................................................................III
CHƯƠNG 1. GIỚI THIỆU.................................................................................................1
CHƯƠNG 2. XÂY DỰNG PHƯƠNG PHÁP NHẬN DẠNG BIỂN SỐ VÀ XÁC ĐỊNH
PHẦN MỀM THIẾT KẾ.....................................................................................................1
CHƯƠNG 3. PHÂN TÍCH CHI TIẾT HỆ THỐNG........................................................3
CHƯƠNG 4. THIẾT KẾ GIAO DIỆN VÀ HƯỚNG DẪN SỬ DỤNG.........................11
CHƯƠNG 5. KIỂM TRA CHẠY THỬ VÀ KẾT LUẬN...............................................13
TÀI LIỆU THAM KHẢO................................................................................................15
PHỤ LỤC A.......................................................................................................................16


ĐỒ ÁN 3
Trang 1/21


CHƯƠNG 1. GIỚI THIỆU
1.1 Giới thiệu hệ thống
1.1.1 Khái quát sơ lược
Hệ thống nhận dạng biển số xe gắn máy ứng dụng giữ xe được xây dựng trên phần
mềm MATLAB dựa trên thuật toán nhận dạng mạng neural cho độ chính xác cao và
khả năng mở rộng phạm vi nhận dạng . Bộ thiết bị gồm camera (webcam) gắn ngoài
thu nhận hình ảnh cần xử lý và một board mạch tích hợp cảm biến tự động phát hiện
vật cản (có thể là xe máy).
1.1.2 Khả năng làm việc
• Phát hiện vật cản và tự động xử lý có phải là xe máy hay không?
• Khi tính năng này được bật thì board mạch tự động được kích hoạt
dò tìm khi có vật cản thì sẽ cảnh báo lên PC để lệnh ghi lại hình
ảnh từ camera qua phần mềm trên MATLAB nhận dạng có tồn tại
biển số xe máy trong ảnh vừa chụp hay không nếu có thì lưu lại số
liệu và gửi tín hiệu về để board lệnh cho động cơ servo mở. Từ đó
xe máy có thể di chuyển vào bãi đậu (đối với bãi xe thông minh)
hoặc tiếp tục di chuyên trên đường ( đối với trạm kiểm soát giao
thông).
• Chụp xe máy và xử lý theo yêu cầu người dùng
• Từ các phím chức năng trên giao diện phần mềm ta chọn ảnh hoặc
chụp ảnh từ camera rồi hệ thống tự xử lý và cho ra kết quả.
• Kết quả mà người dùng thu thập được là ảnh gốc được dặt tên là

Nhận dạng biến số xe


ĐỒ ÁN 3
Trang 1/21

VD: 62G1_18519.jpg


Hình 1: Ảnh thực tế biển số xe máy

• Tăng khoảng cách nhận dạng và độ khó của ảnh chụp bằng mạng neural
• Trong một số trường hợp phức tạp hơn, ảnh chụp được ảnh biển số
xe bị nhỏ nhòe, lệch so với phương ngang thì việc nhận dạng thu

Nhận dạng biến số xe


ĐỒ ÁN 3
Trang 1/21

được kết quả chính xác là vấn đề nan giải. Tuy nhiên với thuật
toán neural network bằng cách “train” nhiều mẫu khác nhau sẽ thu
được kết quả mong đợi ở lần nhận dạng sau.

1.2 Xây dựng sơ đồ khối và lên ý tưởng hệ thống

SERVO
SERVO

MATLAB
MATLAB
CAMERA
CAMERA

(PC/LAPTOP
(PC/LAPTOP
))


ARDUINO
MEGA

CẢM BIẾN
VẬT CẢN

Hình 2: Sơ đồ khối hệ thống

• MATLAB:
• Nhiệm vụ giao tiếp chính với người dùng và các thiết bị ngoại vi
• Tiếp nhận xử lý ảnh cần nhận dạng lưu kết quả phục vụ cho mục đích
của người dùng.
• Thuật toán và phương thức nhận dạng sẽ được trình bày cụ thể ở
Chương 3.
• CAMERA:

Nhận dạng biến số xe


ĐỒ ÁN 3
Trang 1/21

• Có thể sử dụng webcam ngắn ngoài hoặc webcam của laptop để chụp
hình ảnh xe máy cần nhận dạng.
• Giữa PC và camera giao tiếp qua cổng USB 2.0
• ARDUINO MEGA:
• Để xây dựng một mạch tự động phát hiện vật cản có thể là xe máy thì
cần một vi điều khiển thì ARDUINO là lựa chọn phù hợp và đơn giản
nhất bởi sử dụng ngôn ngữ C với trình biên dịch Arduino IDE giao

diện dễ sử dụng, dễ dàng giao tiếp với các module và máy tính.
• Có nhiều board ARDUINO khác nhau và đều có thể phục vụ cho hệ
thống này ở đây tác giả chọn ARDUINO MEGA 2560.
• ĐỘNG CƠ SERVO:
• Trên thực tế có thể thay thế bằng RELAY đóng mở thiết bị động lực
của rào chắn.
• Ở mô hình thiết kế sử dụng SERVO 9G vì đây là loại nhỏ nhất có đầu
cuối kết nối với vi điều khiển.
• CẢM BIẾN VẬT CẢN D80-NK:
• Nhiệm vụ phát hiện vật cản gửi tín hiệu về vi điều khiển xử lý.
• Khoảng cách nhận dạng tối thiểu phải đạt 30 cm.

Nhận dạng biến số xe


ĐỒ ÁN 3
Trang 1/21

CHƯƠNG 2. XÂY DỰNG PHƯƠNG PHÁP NHẬN DẠNG BIỂN SỐ
VÀ XÁC ĐỊNH PHẦN MỀM THIẾT KẾ
2.1 Khái quát đối tượng cần nhận dạng
• Xử lý ảnh là quá trình biến đổi ảnh đầu vào nhằm mục đích cải thiện chất
lượng ảnh, lọc đối tượng theo yêu cầu hoặc nhận dạng … sử dụng các công
cụ hỗ trợ trên máy tính vì lý do xử lý ảnh yêu cầu khá cao về tốc độ xử lý và
khả năng lưu trữ của phần cứng. Ngôn ngữ lập trình phục vụ xử lý ảnh đa
dạng C++,C#, Python, Java. Công cụ hỗ trợ có thể dùng Visual Studio,
MATLAB, LABVIEW… trên các nền tảng Windows, Linux, IOS, Android.
Phổ biến ở quy mô thí nghiệm ý tưởn thì dùng một trong những công cụ sau:
• Visual Stuido có ưu điểm nhẹ chạy trên nền tảng window tương
thích mạnh mẽ với phần cứng máy tính, tốc độ xử lý nhanh. Tuy

nhiên thì thêm bộ thư viện OPENCV (Open Source Computer
Vision) đây là bộ thư viện tập hợp hơn 4.000 câu lệnh phục vụ xử
lý ảnh chuyên nghiệp.
• MATLAB ưu điểm hỗ trợ mạnh mẽ, dễ tiếp cận có tích hợp sẵn
công cụ Image Acquisition Tool và các hàm xử lý ảnh, Neural
Network Toolbox hỗ trợ các dự án liên quan mạng neural. Tuy
nhiên tốc độ xử lý của MATLAB thấp không khả thi thực tế chỉ
phù hợp môi trường mô phỏng thí nghiệm.
• Nhận dạng được hiểu là toàn thể những đặc điểm hình thức bề ngoài của một
đối tượng được miêu tả trong quá trình theo dõi thỏa yêu cầu nào đó của
người dùng đặt ra. Nhận dạng biển số xe gắn máy trong ảnh là xác định trong
ảnh có biển số xe gắn máy hay không và nếu có thì đó là gì biển số bao
nhiêu. Dựa trên thuộc tính của biển số xe gắn máy đã được học mà não bộ
con người cho phép ta thực thi việc xác định một biển số xe trong ảnh một
cách dễ dàng .

Nhận dạng biến số xe


ĐỒ ÁN 3
Trang 2/21

• Thuộc tính biển số xe gắn máy phổ thông ở Việt Nam:
• Hình dạng: hình chữ nhật.
• Kích thước: chiều rộng 190mm, chiều cao 140mm.
• Màu sắc: chữ đen làm nổi xếp thành 2 hàng, nền trắng, viền đen.
• Quy định kí tự: Ở phạm vi đề tài chỉ xét 2 nhóm biển số phổ thông
là nhóm 9 kí tự và nhóm 8 kí tự.
• Lưu ý: Đối với xe >50cm3 thì chỉ có 1 kí tự chữ và xe <50cm 3 thì có 2 kí tự
chữ.

2.2 Quá trình nhận dạng biển số
Ảnh gốc ban đầu sau khi được chụp từ camera được lưu ở định dạng jpg hệ màu
RGB không thể xử lý được.
Ảnh RGB

Nhị phân

Tách

Tách kí

Nhận

hóa ảnh

biển số

tự ra khỏi

dạng kí

biển số

tự

Hình 3: Quy trình nhận dạng

Để thuận tiện và đơn giản cho việc sử dụng các phép tính toán thì phải chuyển ảnh
gốc RGB về ảnh nhị phân ( Ảnh sẽ ở dạng một ma trận mà các phần tử chỉ có giá trị
1 hoặc 0).

Tách biển số ở đây được hiểu là cắt phần biển số ra khỏi ảnh gốc, mục đích để chia
nhỏ phạm vi nhận dạng và thuận tiện cho tách kí tự. Tuy nhiên nếu đưa ra giải pháp
chỉ tách kí tự biển số mà không cần phải tách biển số thì có thể bỏ qua bước này.
Tách kí tự biển số hay tách biên phân vùng kí tự là tách kí tự nằm trong biển số
bước này quyết định số lượng kí tự sẽ được nhận dạng.
Nhận dạng ký tự quang học (tiếng Anh: Optical Character Recognition, viết tắt
là OCR) là biến đổi kí tự thu được ở bước tách kí tự (image) thành dạng văn bản
(text) phù hợp với ngữ nghĩa trong ảnh bước này ảnh hưởng quyết định kết quả
nhận dạng. Có nhiều phương pháp nhận dạng khác nhau giới hạn đề tài áp dụng hai
phương pháp là so mẫu và mạng neural.

Nhận dạng biến số xe


ĐỒ ÁN 3
Trang 3/21

CHƯƠNG 3. PHÂN TÍCH CHI TIẾT HỆ THỐNG
3.1 Nhị phân ảnh

Input

Resize

Ảnh

Ngưỡng

Ảnh


ảnh RGB

Ảnh

xám

độ

Nhị phân

Hình 4: Sơ đồ nhị phân hóa ảnh

Hình 4.1: Ảnh gốc sau khi nhị phân

• Ảnh số (Digital image): đây là đối tượng mà máy tính xử lý. Ảnh số chỉ là
một ma trận 2 chiều và việc xử lý chúng chỉ là những thao tác trên ma trận
này sao cho ra kết quả hợp lý. Ví dụ một bức ảnh số có độ phân giải 640x480

Nhận dạng biến số xe


ĐỒ ÁN 3
Trang 4/21

nghĩa là chiều ngang có 640 điểm ảnh (pixel), chiều dọc có 480 điểm ảnh, và
mỗi điểm ảnh được biểu diễn bằng một con số.
Gồm 3 phân loại chính:

Hình 5: Ảnh số [3]


• Ảnh màu (Ảnh RGB): mỗi điểm ảnh có giá trị gồm 3 màu đỏ (red) +
xanh lục (green) + xanh dương (blue). Mỗi màu có giá trị từ 0 đến
255, nghĩa là mỗi điểm ảnh cần 24bits hay 3bytes để biểu diễn. Kích
thước ảnh gốc tùy thuộc vào độ phân giải camera.
• Ảnh xám (gray image): giá trị mỗi điểm ảnh nằm trong giải giá trị từ
0 đến 255, nghĩa là cần 8 bits hay 1 byte để biểu diễn mỗi điểm ảnh
này.
• Ảnh nhị phân (binary image): giá trị mỗi điểm ảnh là 0 hoặc 1, nghĩa
là trắng hoặc đen.
• Resize ảnh đặt lại kích thước ảnh ở đây là 640x480.
• Ngưỡng độ dùng để chỉ một giá trị mà người ta dựa vào để phân hoạch một
tập hợp thành các miền phân biệt. Ở đây dùng ngưỡng độ để làm chuẩn phân
chia mức nhị phân ảnh.

Nhận dạng biến số xe


ĐỒ ÁN 3
Trang 5/21

3.2 Tách biển số
Tách biển số dựa trên đặc tính của biển số là hình chữ nhật có tỷ lệ 14/19 nền trắng
chữ đen. Nếu tạo biên đóng khung các đối tượng và dựa vào đó thì có thể suy ra
được những hình ảnh có khả năng là biển số.
Các bước thực hiện từ ảnh RGB đi nhị phân ảnh sau đó tìm các vùng trắng tìm
đường bao của các vùng trắng xem xét kích thước phù hợp tỷ lệ biển số thì cắt ảnh
đó ra khỏi ảnh gốc. Bước này có thể bỏ qua do kết quả ta chỉ quan tâm đến kí tự
trong biển số là gì nhưng sẽ hữu ích đối với các dự án theo dõi rượt đuổi hoặc nhận
dạng tốc độ phương tiện.


Ảnh nhị

tăng

phân

ngưỡng

Lấy bù

Xác định

So sánh

Vùng trắng

tỷ lệ

Hình 6: Quy trình tách biển số

Cắt ảnh

Ảnh 6.1: Ảnh biển số sau khi tách

Nhận dạng biến số xe


ĐỒ ÁN 3
Trang 6/21


3.3 Tách kí tự
Chương trình sẽ tách kí tự độc lập ra khỏi ảnh theo hình chữ nhật. Dựa trên tỷ lệ
kích thước chữ của biến số mà giữ lại các kí tự là kí tự biển số. Chính vì có thể bỏ
qua bước tách biển số mà kết quả vẫn như ý muốn.
Quá trình tách kí tự được thực hiện như sau:

Ảnh nhị

Lấy bù

Khung

phân

ảnh

chữ nhật

Tạo biên

Cắt ảnh

Hình 7: Quy trình tách kí tự

Hình 7.1: Ảnh các kí tự sau khi tách

Thuật toán như sau: Trên ma trận ảnh xét từng phần tử, các ma trận con sẽ được
xác định tọa độ nếu ma trận con độc lập thì tạo hình chữ nhật qua 2 điểm có tọa độ
nhỏ nhất và lớn nhất sau đó cắt vùng chứa bên trong hộp chữ nhật ta được ảnh kí tự
đã tách từ ảnh gốc.

3.4 Nhận dạng kí tự
3.4.1 Phương pháp so mẫu
• Giới thiệu: Mẫu là tập hợp các ảnh ở định dạng .bmp ma trận kí tự gồm chữ
số và chữ cái đối với biển số xe thì không có kí tự O và W. Sau khi có được
ảnh ở bước tách kí tự thì đem so sánh với mẫu, mẫu phù hợp nhất sẽ được
chọn.
• Ưu điểm: đơn giản tuy có giới hạn tập mẫu nhưng việc nhận dạng đối với hệ
thống không có nhu cầu mở rộng đối tượng ví dụ chỉ nhận dạng xe biển số xe
oto hoặc chỉ xe máy.

Nhận dạng biến số xe


ĐỒ ÁN 3
Trang 7/21

• Nhược điểm: Giới hạn số lượng mẫu không thể mở rộng phạm vi nhận dạng.
Ảnh gốc bị nhoè, lệch, nghiêng thì khả năng nhận dạng giảm rõ rệch.
3.4.2 Phương pháp mạng neural (neural network)
• Giới thiệu: Cũng dựa vào sự so sánh với tập mẫu tuy nhiên với mạng neural
sẽ có thể dạy “train” nhiều mẫu khác nhau từ đó cải thiện độ chính xác của
việc nhận dạng. Cộng cụ là Neural Network Toolbox trên MATLAB. Cơ sở
lý luận dựa trên mô phỏng cấp độ hệ thống Neural sinh học chấp nhận sai và
ưu tiên chọn cái đúng nhất. Ngõ vào sẽ được tính toán trong mạng neural và
ngõ ra sẽ đối chiếu với tín hiệu mong muốn và cập nhật điều chỉnh để thỏa
yêu cầu.
• Ưu điểm : độ chính xác cao có khả năng mở rộng tập nhận dạng, xử lý được
hình ảnh bị nhòe, mờ thiếu nét.
• Cấu trúc:
Mỗi ngõ vào pn có một trọng số W ,tổng ngưỡng b với tích trọng số ngõ vào

là hàm truyền f trong một lớp mạng. Có nhiều loại hàm truyền khác nhau
như logsig, tagsig,purelin.

Hình 8: Cấu trúc một lớp neural [4]

Nhận dạng biến số xe


ĐỒ ÁN 3
Trang 8/21

S: số neural trong một lớp
R: số ngõ vào

Hình 9.Đồ thị A nhiễu và gốc

Hình 10: Đồ thị biểu diễn 2 kí tự ở trên

3.5 Borad mạch tự động
3.5.1 Lưu đồ giải thuật

Nhận dạng biến số xe


ĐỒ ÁN 3
Trang 9/21

begi
n
s


VC=

Print “0”

000

ĐC 00

Print “1”

PC=
1
s

ĐC 00

PC=

Print “0”

2
Delay
10s

End
Hình 11: Lưu đồ giải thuật của board

Trong đó VC là biến của cảm biến hồng ngoại
PC là giá trị đọc từ cổng COM

Trên MATLAB thì khi nhận được giá trị cổng COM là “1” thì gửi lại cho COM “1”
để vi xử lý chờ, tiếp đó máy tính chụp ảnh và xử lý nhận dạng đến khi hoàn thành
gửi giá trị cho COM là “2” kết thúc một lượt kiểm tra.

Nhận dạng biến số xe


ĐỒ ÁN 3
Trang 10/21

3.5.2 Cấu trúc phần cứng
• ARDUINO MEGA chạy trên nền tảng ATMEGA 2560 được hãng
ARDUINO của Italia phát triển kèm theo trình biên dịch ARDUINO IDE. Ở
đề tài này thì sinh viên chỉ sử dụng khả năng giao tiếp UART , xuất tín hiệu
analog và digital.

Hình 12: ARDUINO MEGA 2560 [5]

• Cảm biến vật cản D80NK

Hình 13: Cảm biến D80NK [6]

• Nguồn điện cung cấp: 5VDC
• Tầm cảm ứng: 3-80cm
• Dòng chờ 300mA
• Động cơ Servo MG-90S
• Áp nguồn 5VDC
• Chân điều khiển Analog

Nhận dạng biến số xe



ĐỒ ÁN 3
Trang 11/21

CHƯƠNG 4. THIẾT KẾ GIAO DIỆN VÀ HƯỚNG DẪN SỬ DỤNG
4.1 Giao diện

Hình 14: Giao diện GUI chương trình

• axPreview phần hiển thị chính của chương trình dùng để trực tiếp từ camera,
hiển thị hình ảnh.
• axBackground là thay đổi hình nền của chương trình.
• Notification là bảng thông báo bao gồm hiển thị thông tin tác giả và tiến
trình thực hiện của hệ thống.
• RESULT là phần hiển thị kết quả nhận dạng.
• 4 nút nhấn Auto, Run, Capture, View thực hiện chức năng tương đương ngữ
nghĩa của chúng.

Nhận dạng biến số xe


ĐỒ ÁN 3
Trang 12/21

4.2 Hướng dẫn sử dụng
• Để bắt đầu thì ấn Start đồng thời cửa sổ chọn ảnh nền cho phần mềm bắt đầu.
Và mặt định chương trình sẽ chọn Camera số 2 ( đối với laptop thì tương
đương webcam gắn ngoài). Nếu chọn đúng thì nút nhất Start chuyển sang
Running.


Hình 15: Giao diện hoạt động

• Nếu muốn chọn lại camera thì ấn nút nhất camera sẽ chuyển đổi.
• Trong hộp thoại chọn COM thì ấn chọn COM sau khi đã kết nối với phần
cứng board mạch. Ấn conect nếu thành công thì nút nhấn sẽ chuyển sang
disconect.
• Info: hiển thị thông tin tác giả.
• Exit: thoát chương trình.
• Auto: bật chế độ tự động
• Run: chạy chế độ siêu tốc bỏ qua tách biển số
• Capture : chụp ảnh bằng tay clik và đợi 3s rồi giữ nguyên camera để chụp.
• View : hiển thị ảnh đã lưu.

Nhận dạng biến số xe


ĐỒ ÁN 3
Trang 13/21

CHƯƠNG 5. KIỂM TRA CHẠY THỬ VÀ KẾT LUẬN
5.1 Bảng chạy thử
STT
1
2
3
4
5
6
7

8
9
10

BIỂN SỐ
62G1-185.19
53P5-0746
63B1-2412
62H8-2686
69FA-1508
39SE-11204
49K1-02272
51Y4-7534
49B1-23215
63B8-1257

Kết quả nhận dạng
62G1-18.519
53P5-0746
6381-2412
62H8-2686
69FA-1508
39SE-11204
49K1-02272
51Y4-7534
49B1-23215
6388-1257

Số kí tự sai sót
0

0
1
0
0
0
0
0
0
1

Tỷ lệ nhận dạng chính xác đạt 80% với 10 mẫu thử.
Tỷ lệ kí tự sai sót trên tổng số là 5.88%
Nhận dạng sai sót thường ở các kí tự B, 8, G, 6.
Kết quả sau khi xử lý sẽ được lưu với tên là kí tự trong ảnh và định dạng như định
dạng ảnh ban đầu.
5.2 Ý nghĩa thực tế và hạn chế của đề tài
Đề tài có thể áp dụng thực tế vào các hệ thống giữ xe thông minh tự động ANPR,
tiết kiệm được công lao động. Thời gian xử lý trung bình của hệ thống là 10s nên
tiết kiệm thời gian gửi nhận xe nếu được áp dụng.
Hệ thống có sự kết hợp nhiều môn học khác nhau và phần cứng lẫn phần mềm là cơ
sở rèn luyện lại nguồn kiến thức đã học ở trường.
Tuy nhiên như đã nói ở phần giới thiệu hệ thống có tốc độ xử lý chưa cao, yêu cầu
cấu hình máy tính mạnh. Trường hợp một số biển số bị méo dạng hoặc đã bị chói
sáng thì không nhận dạng được.

Nhận dạng biến số xe


ĐỒ ÁN 3
Trang 14/21


5.3 Hướng phát triển của đề tài
Đây là mở đầu cho cơ sở thị giác máy áp dụng vào các công việc nhận dạng phát
triển robot thông minh, xe tự động lái…
Nếu được tiếp tục thông qua tôi sẽ phát triển lên thành MẮT THẦN hệ thống giám
sát tốc độ xe, phát hiện xe lấn tuyến vi phạm. Kết hợp với hệ thống mạng LAN để
từ đó nhà quản lý có thể xử lý mềm người tham gia giao thông không đúng luật.
Về phần cứng sẽ xem xét việc sử dụng máy tính nhúng nhầm giảm kích thước hệ
thống.
Về phần mềm sử dụng ngôn ngữ C++ kết hợp bộ thư viện mã nguồn mở OPENCV
để tăng tốc độ xử lý.

Nhận dạng biến số xe


ĐỒ ÁN 3
Trang 15/21

TÀI LIỆU THAM KHẢO
Tiếng việt:
[1]
[2]
[3] />[4]
[5]
[6]
Tiếng Anh:
[3]

Nhận dạng biến số xe



ĐỒ ÁN 3
Trang 16/21

PHỤ LỤC A
[filename,pathname]=uigetfile({'*.tif;*.bmp;*.gif;*.jpg;*.png'},'Chose
image');
imagen=imread([pathname,filename]);
GOC=imagen;
if size(imagen,3)==3
imagen=rgb2gray(imagen);
end
threshold = graythresh(imagen);
imagen =~im2bw(imagen,threshold);
imagen = bwareaopen(imagen,30);
[L, Ne]=bwlabel(imagen);
propied=regionprops(L,'BoundingBox');
for n=1:size(propied,1)
rectangle('Position',propied(n).BoundingBox,'EdgeColor','g','LineWidth',2
)
end
i=1;
for n=1:Ne
[r,c] = find(L==n);
n1=imagen(min(r):max(r),min(c):max(c));
[x, y]=size(n1);
I=y/x;
if (x>60 )&&(y>20)
if ((0.35pic=~n1;

fname=num2str(i);
i=i+1;
imwrite(pic,fname,'jpg');
elseif ((0.25pic=~n1;
fname= num2str(i);
i=i+1;
imwrite(pic,fname,'jpg');
elseif ((0.5pic=~n1;
fname=num2str(i);
i=i+1;
imwrite(pic,fname,'jpg');
end
end
end
A=imread('1');
A1=OCR(A);
A=imread('2');
A2=OCR(A);
A=imread('3');
A3=OCR(A);
A=imread('4');
A4=OCR(A);
A=imread('5');
A5=OCR(A);
A=imread('6');
A6=OCR(A);

Nhận dạng biến số xe



ĐỒ ÁN 3
Trang 17/21

if A6=='6'
A6='G';
end
if A6=='0'
A6='D';
end
A=imread('7');
A7=OCR(A);
A=imread('8');
A8=OCR(A);
%%%%%%
A1=num2str(A1);
A2=num2str(A2);
A3=num2str(A3);
A4=num2str(A4);
A5=num2str(A5);
A6=num2str(A6);
A7=num2str(A7);
A8=num2str(A8);
%%%
set(handles.BS,'String','');
if i==10%%%%%BIEN SO XE GAN MAY 9 KY TU
A=imread('9');
A9=OCR(A);
A9=num2str(A9);

BS=[A2,A4,A6,A8,'-',A1,A3,A5,'.',A7,A9];
set(handles.BS,'String',BS);
end
if i==9%%%bien so 8 ki tu
BS=[A2,A3,A6,A7,'-',A1,A4,A5,A8];
set(handles.BS,'String',BS);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
axes(handles.axPreview);
imshow(GOC);
set(handles.line1,'String','');
set(handles.line2,'String','DONE!');
set(handles.line3,'String','');
if i<9
set(handles.BS,'String','ERROR');
imshow(GOC);
set(handles.line1,'String','');
set(handles.line2,'String','IMPOSSIBLE!');
set(handles.line3,'String','');
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

0.64%

Nhận dạng biến số xe


×