Phầncứng có phần chính là Camera để thu nhận hình ảnh và phần mềm sẽ phân tích hìnhảnh đó để lấy ra các ký tự trên biển số xe.Sau khi thu nhận và đẩy vào chương trình để xử lý th
Trang 1KHOA ĐIỆN – ĐIỆN TỬ
ĐỒ ÁN TỐT NGHIỆP
ĐẠI HỌC NGÀNH: CÔNG NGHỆ KỸ THUẬT ĐIỆN - ĐIỆN TỬ
CHUYÊN NGÀNH: KỸ THUẬT ĐIỆN TỬ
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA ĐIỆN – ĐIỆN TỬ
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc
NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP
(Dành cho người hướng dẫn)
Trang 3TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA ĐIỆN – ĐIỆN TỬ
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc
NHẬN XÉT PHẢN BIỆN ĐỒ ÁN TỐT NGHIỆP
(Dành cho người phản biện)
Trang 4Như mọi hệ thống khác, hệ thống này yêu cầu có phần cứng và phần mềm Phầncứng có phần chính là Camera để thu nhận hình ảnh và phần mềm sẽ phân tích hìnhảnh đó để lấy ra các ký tự trên biển số xe.
Sau khi thu nhận và đẩy vào chương trình để xử lý thì quả trình xử lý biển sốđược thực hiện như sau:
- TÁCH BIỂN SỐ: khối này có chức năng tách biển số từ ảnh chụp bằng cácphương pháp xử lý ảnh Kết quả của khối là ảnh màu RBG (Red Green Blue) đượccắt ra từ ảnh chụp Đây là một công việc rất khó khăn vì ta không biết được vị trí chínhxác của biển số Ngoài ra, còn phụ thuộc vào độ sáng của ảnh chụp
- PHÂN ĐOẠN KÍ TỰ: sau khi tách biển số, khối này thực hiện tách từng kí tựcó trong biển số, tạo thành tập ảnh riêng biệt các ký tự phục vụ việc nhận dạng ký tự.Ảnh của mỗi ký tự là ảnh trắng đen
- NHẬN DẠNG KÍ TỰ: sau khi phân đoạn, tách các kí tự trong biến số và tạothành một chuỗi ký tự Chuỗi này đưa vào khối nhận dạng dạng để tiến hành nhậndạng từng ký tự trong chuỗi
Đề tài gồm có 4 chương chính:
Chương 1: Tổng quan về xử lý ảnh(Chương này trình bày các nội dung liênquan kỹ thuật xử lý ảnh)
Chương 2: Phần mềm LabVIEW và Xử lý ảnh với LabVIEW(Chương nàytrình bày chi tiết về phần mềm LabVIEW Cách thức thực hiện, xây dựng, phát triểnứng dụng trên lapview)
Chương 3: Thiết kế chương trình nhận diện biển số xe trên LabVIEW(Chươngnày trình bày chi tiết về cách xây dựng mô hình nhận diện biển số, quá trình huấnluyện(thủ công/tự động); dữ liệu cho huấn luyện, edit code cho các khối chứcnăng.v.v )
Trang 5 Chương 4: Phân tích, đánh giá kết quả thực hiện(Chương này trình bày chi tiếtquá trình tìm hiểu, nghiên cứu; các kết quả đã thực hiện; ưu nhược điểm và hạn chếtồn tại; hướng phát triển,)
Trang 6TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA ĐIỆN – ĐIỆN TỬ
CỘNG HÒA XÃ HÔI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Giảng viên hướng dẫn: ThS Phạm Văn Phát
Sinh viên thực hiện: Hồ Duy Guỳnh Mã SV: 1711505210136
1 Tên đề tài:
ỨNG DỤNG XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XE GẮN MÁY BẰNG PHẦN MỀM LABVIEW
2 Các số liệu, tài liệu ban đầu:
- Data ảnh biển số xe
- Tài liệu về LabVIEW
- Nghiên cứu, tìm hiểu về xử lý ảnh, phần mềm LabVIEW và ứng dụng
LabVIEW trong xử lý ảnh
- Xây dựng mô hình, sơ đồ, chương trình cho phép nhận diện được biển sổ xe từ
dữ liệu ảnh chụp Kết quả là dòng LICENSE NUMBER biển số xe, lưu kết quả sau khi
xử lý Sai số của mô hình ≤ 05%
- Phần mềm sử dụng: LabVIEW 2017
- Tài liệu: Hướng dẫn sử dụng LabVIEW, các tài liệu và đường link gợi ý của
GVHD
3 Nội dung chính của đồ án:
Chương 1: Tổng quan về xử lý ảnh Chương này trình bày các nội dung liên
quan kỹ thuật xử lý ảnh (như nhận diện ảnh, tách biên, trừ nền, trích xuất các thuộctính ảnh, các dạng ảnh,….)
Chương 2: Phần mềm LabVIEW và Xử lý ảnh với LabVIEW Chương này
trình bày chi tiết về phần mềm LabVIEW, công cụ chính được sử dụng, nghiên cứucủa đề tài Các nội dung gồm giới thiệu phần mềm; Khả năng ứng dụng; giao diện;công cụ; phát triển các ứng dụng; cách thức thực hiện, xây dựng, phát triển ứng dụngtrên LabVIEW; lập trình và sinh mã trên LabVIEW (source code).v.v
Chương 3: Thiết kế chương trình nhận diện biển số xe trên LabVIEW.
Chương này trình bày chi tiết về cách xây dựng mô hình nhận diện biển số xe baogồm: Sơ đồ khối/mạch; chứng năng, thuộc tính các khối/Block; nguyên lý chung vàquy trình hoạt động của mô hình; thuật toán(sơ đồ và hoạt động, giải thích thuật toán);quá trình huấn luyện(thủ công/tự động); dữ liệu cho huấn luyện và dữ liệu cho nhậndạng; các vấn đề sai số, nhiều và giải pháp xử lý; việc sinh mã và edit code cho cáckhối chức năng.v.v
Trang 7 Chương 4: Phân tích, đánh giá kết quả thực hiện Chương này trình bày chi
tiết quá trình tìm hiểu, nghiên cứu; các kết quả đã thực hiện; ưu nhược điểm và hạnchế tồn tại; đánh giá mức độ đạt được so với yêu cầu, nhiệm vụ của ĐATN; hướngphát triển, nghiên cứu tiếp(nếu có); kết luận;
4 Các sản phẩm dự kiến
- Báo cáo tổng kết đồ án tốt nghiệp
- Mô hình mô phỏng hệ thống nhận diện biển số xe sử dụng phần mềmLabVIEW
Trang 8LỜI NÓI ĐẦU
Trong quá trình thực tập tại công ty, em đã tiếp cận với các lĩnh vực liên quanđến ngành học Trong đó, nhận dạng và xử lý ảnh là một trong những lĩnh vực mà emđược tiếp cận và giao nhiệm vụ nhiều nhất Vì vậy, em đã chọn lĩnh vực Xử lý ảnh đểthực hiện đồ án với đề tài “ỨNG DỤNG XỬ LÝ ẢNH NHẬN DIỆN BIỂN SỐ XEGẮN MÁY BẰNG PHẦN MỀM LABVIEW”
Để hoàn thành tốt đề tài này, trước tiên, Em xin chân thành cảm ơn các thầy cô
và ban giám hiệu trường ĐH Sư Phạm Kỹ thuật Đà Nẵng nói chung và các thầy côtrong khoa Điện – Điện tử nói riêng đã tạo mọi điều kiện giúp đỡ chúng em trong quátrình học tập và nghiên cứu
Tiếp đến, Em xin chân thành gửi lời cảm ơn đến các anh Kỹ sư tại công tyTNHH Premo Việt Nam tại lô 21, KCN Điện Nam Điện Ngọc, Điện Bàn, Quảng Nam
là đơn vị Em được thực tập đã hướng dẫn và bồi dưỡng kiến thức trong quá trình thựctập và làm việc tại công ty
Và đặc biệt xin chân thành gửi lời cảm ơn thầy Phạm Văn Phát, là giảng viênhướng dẫn và cũng là người đã nhiệt tình giúp đỡ cho em trong suốt quá trình hoànthành đề tài
Do thời gian và kiến thức còn hạn chế nên đồ án không tránh khỏi những sai sót
Em mong nhận được sự đóng góp bổ sung của thầy cô giáo và các bạn
Cuối cùng xin chân thành cảm ơn tất cả các bạn đã đóng góp ý kiến và hổ trợ emtrong quá trình thực hiện thành đồ án này
Sinh viên thực hiện
Hồ Duy Guỳnh
Trang 9CAM ĐOAN
Kính gửi hội đồng bảo vệ đồ án tốt nghiệp khoa Điện- Điện Tử, trường Đại học
Sư Phạm Kỹ thuật – Đại học Đà Nẵng
Tôi là Hồ Duy Guỳnh sinh viên lớp 17KTDT1, Khoa Điện- Điện Tử, trường Đạihọc Sư Phạm Kỹ thuật – Đại học Đà Nẵng
Tôi xin cam đoan đồ án tốt nghiệp “ỨNG DỤNG XỬ LÝ ẢNH NHẬN DIỆN
BIỂN SỐ XE GẮN MÁY BẰNG PHẦN MỀM LABVIEW ” là công trình nghiên
cứu của bản thân Những phần sử dụng tài liệu tham khảo trong đồ án đã được nêu rõtrong phần tài liệu tham khảo Các số liệu, kết quả trình bày trong đồ án là sản phẩmriêng của công trình nghiên cứu và hoàn toàn trung thực, nếu sai tôi xin chịu hoàn toàntrách nhiệm và chịu mọi kỷ luật của bộ môn và nhà trường đề ra
Sinh viên thực hiện
Trang 10MỤC LỤC
NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP i
NHẬN XÉT PHẢN BIỆN ĐỒ ÁN TỐT NGHIỆP ii
TÓM TẮT iii
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP v
LỜI NÓI ĐẦU vii
CAM ĐOAN viii
MỤC LỤC ix
DANH SÁCH CÁC HÌNH VẼ xii
DANH SÁCH CHỮ VIẾT TẮT xv
MỞ ĐẦU 1
CHƯƠNG 1 TỔNG QUAN VỀ XỬ LÝ ẢNH [1] 3
1.1 SƠ LƯỢC VỀ XỬ LÝ ẢNH 3
1.2 CÁC VẤN ĐỀ CƠ BẢN TRONG XỬ LÝ ẢNH 5
1.2.1 Một số khái niệm cơ bản 5
1.2.2 Chỉnh mức xám 6
1.2.3 Trích chọn đặc điểm 6
1.2.4 Nhận diện 6
1.3 CÁC LOẠI TỆP CƠ BẢN TRONG XỬ LÝ ẢNH 7
1.3.1 File ảnh IMG 7
1.3.2 File ảnh PCX 8
1.3.3 Định dạng ảnh GIF(Graphics Interchanger Format) 9
1.3.4 File ảnh BMP (BITMAP) 10
1.3.5 Cấu trúc ảnh BMP 11
1.3.6 Cấu trúc ảnh PNG 12
1.4 CÁC ĐỊNH NGHĨA CƠ BẢN VỀ HISTOGRAM 13
1.4.1 Định nghĩa histogram là gì? 13
1.5 PHẠM VI ỨNG DỤNG CỦA XỬ LÝ ẢNH 17
CHƯƠNG 2 PHẦN MỀM LABVIEW VÀ XỬ LÝ ẢNH VỚI LABVIEW [2] 18
2.1 GIỚI THIỆU LABVIEW 18
2.1.1 LabVIEW là gì? 18
2.1.2 Ưu điểm và nhược điểm LabVIEW 18
2.1.3 Các khả năng chính của LabVIEW 19
2.1.4 Môi trường phát triển LabVIEW 19
Trang 112.1.5 Các tín hiệu đo được với LabVIEW 19
2.1.6 Phân tích 19
2.1.7 Hiển thị 20
2.1.8 Điều khiển 20
2.1.9 Giao tiếp với thiết bị ngoại vi 20
2.2 NHỮNG KHÁI NIỆM CƠ BẢN CỦA LABVIEW 21
2.2.1 VI (Vitual Instrument) - Thiết bị ảo 21
2.2.2 Front Panel và Block Diagram 21
2.2.3 Icon & Connector 24
2.2.4 Các kỹ thuật lập trình trên LabVIEW: 24
2.2.5 Tool palette 25
2.2.6 Controls Palette (bảng điều khiển) 25
2.2.7 Function palette 26
2.2.8 Các kiểu dữ liệu 26
2.3 SUBVI VÀ CÁCH XÂY DỰNG SUBVI 29
2.3.1 Khái niệm SubVI 29
2.3.2 Xây dựng SubVI 29
2.4 KỸ THUẬT LẬP TRÌNH NÂNG CAO TRONG LABVIEW 31
2.4.1 Liên kết thiết bị ảo với thiết bị phần cứng 31
2.4.2 Cấu trúc cơ bản của DAQ 32
2.5 PHẦN CỨNG DAQ 37
2.6 PHẦN MỀM (SOFTWARE) 38
2.7 XỬ LI ẢNH VỚI VISION ASSISTANT 39
2.8 XỬ LÝ ẢNH TRÊN LABVIEW VỚI THƯ VIỆN VISION MOTION 42
2.9 MỘT SỐ THUẬT TOÁN NHẬN DẠNG TRONG LABVIEW 45
2.9.1 Nhận dạng vật mẫu (Pattern Matching) 45
2.9.2 Nhận dạng màu(Color Matching) 46
2.9.3 Nhận dạng kí tự quang học OCR(Optical Character Recognition) 47
CHƯƠNG 3 THIẾT KẾ CHƯƠNG TRÌNH NHẬN DIỆN BIỂN SỐ XE TRÊN LABVIEW[3] 51
3.1 XÂY DỰNG PHƯƠNG PHÁP NHẬN DIỆN BIỂN SỐ XE 51
3.1.1 Khái quát đối tượng cần nhận diện: 51
3.1.2 Quá trình nhận diện biển số: 51
3.1.3 Cách huấn luyện thủ công – tạo vật mẫu: Sử dụng Vision Assistant 52
3.2 THIẾT KẾ CHƯƠNG TRÌNH 61
3.2.1 Sơ đồ khối 61
Trang 123.2.2 Giao diện của chương trình(Front Panel) 66
3.2.3 Nguyên lí hoạt động của chương trình(Block Diagram) 68
3.2.4 Sơ Đồ Thuật Toán 71
3.2.5 Module chính của chương trình 72
3.2.6 Các khối chức năng chính có điều chỉnh thông số trong chương trình 75
CHƯƠNG 4 PHÂN TÍCH, ĐÁNH GIÁ KẾT QUẢ THỰC HIỆN 77
4.1 CHẠY THỬ HỆ THỐNG 77
4.2 KẾT QUẢ VÀ HIỆU XUẤT 79
4.2.1 Kết quả 79
4.2.2 Hiệu xuất 80
4.3 GIẢI QUYẾT VẦN ĐỀ TỒN ĐỘNG 81
4.4 ĐÁNH GIÁ HỆ THỐNG 82
4.5 HƯỚNG PHÁT TRIỂN ĐỀ TÀI 83
KẾT LUẬN 84
TÀI LIỆU THAM KHẢO 86
Trang 13DANH SÁCH CÁC HÌNH VẼ
Hình 1.1 Cấu trúc xử lý ảnh 3
Hình 1.2 Tiến trình xử lý ảnh 4
Hình 1.3 Cấu trúc tệp ảnh dạng PCX 9
Hình 1.4 BitmapHeader(54 byte) 12
Hình 1.5 Lược đồ xám của ảnh 14
Hình 1.6 Một ví dụ về biểu đồ tần suất histogram 14
Hình 1.7 Histogram tốt 15
Hình 1.8 Histogram của ảnh quá tối 15
Hình 1.9 Histogram của ảnh quá sáng 16
Hình 1.10 Histogram của ảnh quá tương phản 16
Hình 1.11Histogram của ảnh kém tương phản 16
Hình 2.1 Màn hình khởi động LabVIEW 18
Hình 2.2 Khả năng hiển thị của phần mềm Labview 20
Hình 2.3 Giao tiếp với thiết bị ngoại vi 21
Hình 2.4 Bảng giao diện LabVIEW 22
Hình 2.5 Thanh công cụ giao diện LabVIEW 22
Hình 2.6 Các thành phần trong Block Diagram 23
Hình 2.7 Các kiểu dữ liệu trong LabVIEW 24
Hình 2.8 Controls palette 25
Hình 2.9 Icon mặc định và Icon sau khi được tạo 29
Hình 2.10 Cách thức tạo Connector của một VI 30
Hình 2.11 Thư viện DAQ 31
Hình 2.12 Thư viện Advanced và Thư viện Instrument I/O 32
Hình 2.13 Thiết bị DAQ 33
Hình 2.14 Các dạng lựa chọn của thiết bị DAQ 34
Hình 2.15 Mối quan hệ giữa LabVIEW với thiết bị DAQ 35
Hình 2.16 Các phần tử cơ bản trong hệ thống DAQ 35
Hình 2.17 Giao diện Vision Assistant 2017 39
Hình 2.18 Các hàm xử lý ảnh màu 40
Hình 2.19 Các hàm xử lý ngoại quan máy 41
Hình 2.20 Các hàm xử lý ảnh nhị phân 41
Hình 2.21 Các hàm xử lý ảnh xám 42
Hình 2.22 Vision and Monition 42
Trang 14Hình 2.23 Thư viện thiết bị camera NI-IMAQdx 43
Hình 2.24 Thư viện tiện ích 43
Hình 2.25 Thư viện quản lý ảnh 44
Hình 2.26 Thư viện thị giác máy 44
Hình 2.27 Cấu trúc xử lý ảnh theo phương pháp học mẫu 45
Hình 2.28 Hàm học mẫu 46
Hình 2.29 Hàm nhận dạng vật mẫu 46
Hình 2.30 Hàm học mẫu màu sắc 46
Hình 2.31 Hàm thiết lập thông số học mẫu màu 47
Hình 2.32 Hàm nhận dạng mẫu màu 47
Hình 2.33 Nhận dạng kí tự và chuyển đổi thành chuỗi kí tự 48
Hình 2.33 Hàm load file 48
Hình 2.34 Hàm cài đặt thông số ảnh 49
Hình 2.35 Hàm Parameters 49
Hình 2.36 Hàm đọc kí tự OCR 49
Hình 3.1 Qui trình nhận diện 51
Hình 3.2 Chọn ảnh đưa vào chương trình 52
Hình 3.3 Chuyển màu ảnh 53
Hình 3.4 Chọn hệ màu ảnh 53
Hình 3.5 Chọn công cụ cắt ảnh 54
Hình 3.6 Chọn vùng ảnh cần dùng 54
Hình 3.7 Kết quả quá trình cắt ảnh 55
Hình 3.8 Chọn công cụ xử lý biên 55
Hình 3.9 Thiết lập lấy biên ảnh 56
Hình 3.10 Kết quả quá trình lấy biên ảnh 56
Hình 3.11 Chọn công cụ nhận diện kí tự 57
Hình 3.12 Thiếp lập vùng ảnh cần nhận diện 57
Hình 3.14 Thiết lập tìm các kí tự trong ảnh 58
Hình 3.15 Huấn luyện các kí tự cần nhận diện 59
Hình 3.16 Lưu file Train 59
Hình 3.17 Kết quả quá trình nhận diện kí tự quang học 60
Hình 3.18 Khối Load File 62
Hình 3.19 Tổng quát khối Find Zone 62
Hình 3.20 Khối Overlay 62
Hình 3.21 Tổng quát khối Find Angle 63
Trang 15Hình 3.22 Tổng quát khối Find All Edge 63
Hình 3.23 Tổng quát khối OCR/OCV 63
Hình 3.24 Khối so sánh mẫu 64
Hình 3.25 Khối xuất thời gian và kết quả 64
Hình 3.26 Khối lưu thời gian và kết quả xử lý 64
Hình 3.27 File lưu kết quả và thời gian xử lý 65
Hình 3.28 Giao diện của chương trình 66
Hình 3.29 Nguyên lí hoạt động(nữa đầu) 68
Hình 3.30 Nguyên lí hoạt động(nữa sau) 69
Hình 3.31 Sơ đồ thuật toán 71
Hình 3.32 Khối Find Zone 72
Hình 3.33 Khối Find Angel 72
Hình 3.34 Khối Find All Edge 73
Hình 3.35 Khối OCR-OCV 74
Hình 4.1 Màn hình chương trình đang xử lý ảnh 77
Hình 4.2 Thư mục Template 78
Hình 4.3 Kết quả của quá trình xử lý 79
Hình 4.4 Lỗi nhận diện thiếu kí tự 80
Trang 16PLC Programmable Logic Controller
OCR Optical Character Recognition
Trang 17MỞ ĐẦU
Trong quá trình phát triển của cuộc sống ngày nay, xe máy là phương tiện giao
thông phổ biến rất phổ biến, giúp mọi người đi lại nhanh chóng Từ đó, lưu lượng và
mật độ phương tiện tham gia giao thông ngày một tăng lên Với số l ượng phương tiệngiao thông ngày càng lớn và không ngừng gia tăng thì việc giám sát và quản lý cácphương tiện giao thông gặp rất nhiều khó khăn Vì vậy cần có một hệ thống tự động
để giám sát và quản lý các phương tiện giao thông Để làm được điều này, chúng tacần phải xây dựng một hệ thống mà nó có thể dựa vào các đặc điểm đặc trưng củaphương tiện giao thông để giám sát và quản lí Một trong những hệ thống đó là hệthống nhận dạng biển số xe Đó là một hệ thống có khả năng “đọc” và “hiểu” các biểnsố xe một cách tự động Mỗi chiếc xe đều có đăng ký một biển số để lưu thông trên
đường, biển số là duy nhất Vì vậy nhằm cải thiện tình hình cần có hệ thống hỗ trợ và
đó là hệ thống nhận diện biển số xe Cụ thể hơn chính là đề tài “ỨNG DỤNG XỬ LÝ
ẢNH NHẬN DIỆN BIỂN SỐ XE GẮN MÁY BẰNG PHẦN MỀM LABVIEW”
Dựa vào phần mềm LabVIEW xây dựng hệ thống xử lý ảnh thu thập từ nguồndata có sẵn, xây dựng thư viện và đi theo đó là quá trình tính toán để giao tiếp vớingười vận hành giúp hệ thống có thể nhận diện và xử lý biển số xe
Các hình ảnh ở các chế độ, phần mềm Labview Qua đó nghiên cứu cấu trúctrong Labview nhằm xây dựng một chương trình hoàn chỉnh, đầy đủ và khả thi
Hình ảnh
- Từ hình ảnh có sẵn tính toán và xử lý ảnh xuống độ phân giải phù hợp để thuận
tiện cho việc xử lý(ảnh đen trắng 8bit)
- Thiết lập các hình ảnh qua xử lý tạo thư viện
- Tìm kiếm hình trong quá trình xử lý
LabVIEW
- Thu thập ảnh từ nguồn data có sẵn
- Xây dựng chương trình
- Xuất, lưu kết quả sau quá trình xử lý
Việc có nhiều biển số xe với định dạng và độ sáng khác nhau gây khó khăn choviệc nhận dạng Do quá trình nhận diện dựa vào phương pháp xử lý ảnh và trích xuấtbiển số từ ảnh chụp nên độ sáng khác nhau làm tăng độ phức tạp trong quá trình nhậndiện
Do thời gian thực hiện đề tài không cho phép nên người thực hiện thiết kế vềphần mềm(chương trình nhận diện xử lý ảnh) cùng với giới hạn các biển số và điềukiện như sau:
Trang 18 Biển số có chữ đen, nền trắng, có 2 hàng, số ký tự là 8
Biển số phải còn nguyên vẹn, không bị tróc sơn hay rỉ sét, không bị che khuất
Góc nghiêng của biển số không quá 45 so với phương ngang
Hình chụp biển số không bị m ờ, ký tự biển số còn phân biệt, nhận dạng
Không bị nhiễu bởi ánh sáng làm ảnh chụp bị chói
Biển số có chữ đen, nền trắng, có 2 hàng
Biển số phải còn nguyên vẹn, không bị tróc sơn hay rỉ sét, không bị che khuất
Hình chụp biển số không bị mờ, kí tự số còn phân biệt, nhận dạng được bằngtrực quan
Không bị nhiễu do ánh sáng làm ảnh chụp bị chói
Vị trí góc chụp biển số trong khoảng từ 700 đến 1100
Trang 19CHƯƠNG 1 TỔNG QUAN VỀ XỬ LÝ ẢNH [1]
1.1 SƠ LƯỢC VỀ XỬ LÝ ẢNH
Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ Đây là ngành khoahọc mới so với nhiều ngành khoa học khác nhưng tốc độ phát triển đang rất nhanh,kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt nhất là máy tính chuyên dụngriêng cho lĩnh vực xử lý ảnh
Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng chính: nâng cao chất lượngảnh và phân tích ảnh Ứng dụng đầu tiên được biết đến là nâng cao chất lượng ảnh báođược truyền qua cáp từ Luân Đôn đến New York từ những năm 1920 Xử lý tín hiệu làmột trong những môn học quan trọng trong kỹ thuật điện tử, viễn thông và trong toánhọc Nghiên cứu và xử lý tín hiệu kỹ thuật số và analog, giải quyết các vấn đề về lưutrữ, các thành phần bộ lọc, các hoạt động khác trên tín hiệu… Các tín hiệu này baogồm truyền dẫn tín hiệu, âm thanh hoặc giọng nói, hình ảnh, và các tín hiệu khác Cũng như xử lý dữ liệu bằng đồ hoạ, xử lý ảnh số là một lĩnh vực của tin học ứngdụng Xử lý dữ liệu bằng đồ họa đề cập đến những ảnh nhân tạo, các ảnh này đượcxem xét như là một cấu trúc dữ liệu và được tạo bởi các chương trình Xử lý ảnh sốbao gồm các phương pháp và kỹ thuật biến đổi, để truyền tải hoặc mã hoá các ảnh tựnhiên Mục đích của xử lý ảnh gồm:
Biến đổi ảnh làm tăng chất lượng ảnh
Tự động trong việc nhận dạng ảnh, đánh giá các nội dung của ảnh và đoán nhậnảnh
Trong số các phương pháp xử lý tín hiệu kể trên, lĩnh vực giải quyết với các loạitín hiệu trong đó đầu vào là một hình ảnh và đầu ra cũng là một hình ảnh thì sản phẩmđầu ra sẽ được thực hiện trong một quá trình xử lý, đó chính là quá trình xử lý ảnh Nócó thể được chia thành xử lý hình ảnh tương tự và xử lý hình ảnh kỹ thuật số Để dễhình dùng hơn, chúng ta xét các bước cần thiết trong xử lý ảnh Đầu tiên, ảnh tự nhiên
từ thế giới ngoài được thu nhận qua các thiết bị thu (như Camera, máy chụp ảnh) sauđó nó được chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý tiếp theo
Xử lý ảnh là việc xử lý tín hiệu đầu vào là một hình ảnh, chẳng hạn như mộtkhung ảnh hoặc video, đầu ra của xử lý ảnh có thể hoặc là một hình ảnh hoặc là mộttập hợp các điểm hoặc các thông số liên quan đến hình ảnh
Hình 1.1 Cấu trúc xử lý ảnh
Trang 20Dựa trên các thông số đầu ra đó, người ta có thể tiến hành điều khiển thiết bịtheo ý muốn
Ví dụ: Đếm số viên thuốc trong một vỉ đựng, nếu số thuốc (đầu ra) ít hơn mộtsố thuốc yêu cầu nào đó thì tay robot sẽ tự động bổ sung thêm cho đủ số lượng hoặcgạt vỉ thuốc không đạt yêu cầu ra
Xử lý hình ảnh thường dùng để chỉ xử lý hình ảnh kỹ thuật số, nhưng xử lý ảnhquang học và tương tự cũng có thể xảy ra Trước đây, ảnh thu qua camera là ảnh tương
tự (loại camera ống kiểu CCIR) Gần đây với sự phát triển của công nghệ, ảnh màuhoặc đen trắng được lấy từ camera, sau đó nó được chuyển tiếp thành ảnh số tạo thuậnlợi cho xử lý tiếp theo Mặt khác, ảnh cũng có thể tiếp nhận từ vệ tinh ; có thể quét từảnh chụp máy quét ảnh
Có thể xem ví dụ minh họa cho quá trình trên:
Hình 1.2 Tiến trình xử lý ảnh
Phần thu nhận ảnh (Image Acquisition)
- Ảnh có thể nhận qua camera màu hoặc trắng đen Thường ảnh nhận qua camera
là ảnh tương tự (loại camera ống chuẩn CCIR với tần số 1/25, mỗi ảnh 25 dòng), cũngcó loại camera đã số hóa (như loại CCD-Change Coupled Device) là loại photodiot tạocường độ sáng tại mỗi điểm ảnh
- Camera thường dùng là loại quét dòng: ảnh tạo ra có dạng hai chiều Chấtlượng một ảnh thu nhận được phụ thuộc vào thiết bị thu, vào môi trường (ánh sáng,phòng ảnh)
Tiền xử lý
Sau bộ thu nhận, ảnh có thể nhiều độ tương phản thấp nên cần đưa vào bộ tiền xử
lý để nâng cao chất lượng Chức năng chính của bộ tiền xử lý là lọc nhiễu, nâng độtương phản đê làm rỏ ảnh hơn, nét hơn
Phân đoạn (Segmentation) hay phân vùng ảnh
Trang 21- Phân vùng ảnh là tách một ảnh đầu vào thành các vùng thành phần để biểu diễn,phân tích nhân dạng ảnh Đây là phần phức tạp khó khăn nhất trong xử lý ảnh và củng
dễ gây lỗi, làm mất độ chính xác của ảnh
- Kết quả nhận dạng phải phụ thuộc rất nhiều vào công đoạn này
Biểu diễn ảnh
Đầu ra ảnh sau khi phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đã phânđoạn) cộng với các mã liên kết các vùng lân cận Việc biến đổi các số liệu này thànhdạng thích hợp là cần thiết cho xử lý tiếp theo bằng máy tính Việc chọn các tính chất
để thể hiện ảnh gọi là trích chọn đặc trưng (Feature Selection) gắn với việc tách cácđặc tính của ảnh dưới dạng các thông tin định lượng hoặc làm cơ sở để phân biệt lớpđối tượng này với đối tượng khác trong phạm vi nhận được Ví dụ: Trong nhận dạng kí
tự trên phong bì thư, chúng ta miêu tả các đặc trưng của từng ký tự giúp phân biệt kí tựnày với kí tự khác
Nhận dạng ảnh
Nhận dạng ảnh là quá trình xác định ảnh Quá trình này thường thu được bằngcách so sánh với mẫu chuẩn đã được học (hoặc được lưu) từ trước Theo lý thuyếtnhận dạng các mô hình toán học về ảnh được phân theo hai loại nhận dạng cơ bản:
- Nhận dạng theo tham số
- Nhận dạng theo cấu trúc
- Một số đối tượng nhận dạng khá phổ biến hiện nay đang được áp dụng trongkhoa học và công nghệ là : Nhận dang ký tự (chữ in, chữ viết tay, chữ ký điệntử), nhận dạng văn bản (text), nhận dạng vân tay, nhận dạng mã vạch, nhậndạng mặt người…
Cơ sở
Như đã nói ở trên, ảnh là một đối tượng khá phức tạp về đường nét, độ sáng tối,dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéo theo nhiễu Trong nhiềukhâu xử lý và phân tích ảnh ngoài việc đơn giản hóa các phương pháp toán học đảmbảo tiện lợi cho xử lý, người ta mong muốn bắt chước quy trình tiếp nhận và xử lý ảnhtheo cách con người
1.2 CÁC VẤN ĐỀ CƠ BẢN TRONG XỬ LÝ ẢNH
1.2.1 Một số khái niệm cơ bản
Ảnh và điểm ảnh: Điểm ảnh được xem như là dấu hiệu hay cường độsáng tại 1 toạ độ trong không gian của đối tượng và ảnh được xem như là 1 tập hợp cácđiểm ảnh
Mức xám, màu: Là số các giá trị có thể có của các điểm ảnh của ảnh
Trang 22 Tăng số mức xám: Thực hiện nội suy ra các mức xám trung gian bằng kỹthuật nội suy Kỹ thuật này nhằm tăng cường độ mịn cho ảnh.
Đặc điểm biên và đường biên: Đặc trưng cho đường biên của đối tượng
và do vậy rất hữu ích trong việc trích trọn các thuộc tính bất biến được dùng khi nhậndạng đối tượng Các đặc điểm này có thể được trích chọn nhờ toán tử gradient, toán tử
la bàn, toán tử Laplace, toán tử “chéo không” (zero crossing) v.v Việc trích chọn hiệuquả các đặc điểm giúp cho việc nhận dạng các đối tượng ảnh chính xác, với tốc độ tínhtoán cao và dung lượng nhớ lưu trữ giảm xuống
1.2.4 Nhận diện
Nhận dạng tự động (automatic recognition), mô tả đối tượng, phân loại và phânnhóm các mẫu là những vấn đề quan trọng trong thị giác máy, được ứng dụng trongnhiều ngành khoa học khác nhau Tuy nhiên, một câu hỏi đặt ra là: mẫu (pattern) là gì?Watanabe, một trong những người đi đầu trong lĩnh vực này đã định nghĩa: “Ngược lạivới hỗn loạn (chaos), mẫu là một thực thể (entity), được xác định một cách ang áng(vaguely defined) và có thể gán cho nó một tên gọi nào đó” Ví dụ mẫu có thể là ảnhcủa vân tay, ảnh của một vật nào đó được chụp, một chữ viết, cơ thể người hoặc một
ký đồ tín hiệu tiếng nói Khi biết một mẫu nào đó, để nhận dạng hoặc phân loại mẫuđó có thể:
Hoặc phân loại có mẫu (supervised classification), chẳng hạn phân tíchphân biệt (discriminant analyis), trong đó mẫu đầu vào được định danh như một thànhphần của một lớp đã xác định
Trang 23 Hoặc phân loại không có mẫu (unsupervised classification hayclustering) trong đó các mẫu được gán vào các lớp khác nhau dựa trên một tiêu chuẩnđồng dạng nào đó Các lớp này cho đến thời điểm phân loại vẫn chưa biết hay chưađược định danh.
1.3 CÁC LOẠI TỆP CƠ BẢN TRONG XỬ LÝ ẢNH
Ảnh thu đựơc sau quá trình số hoá có nhiều loại khác nhau phụ thuộc vào kỹthuật số hoá ảnh và các ảnh thu nhận được có thể lưu trữ trên tệp để dùng cho việc xử
lý các bước tiếp theo Sau đây là một số loại tệp cơ bản và thông dụng nhất hiện nay
4 bytes tiếp theo mô tả kích cỡ của pixel
2 bytes tiếp mô tả số pixel trên một dòng
2 bytes cuối cho biết số dòng trong ảnh
Các dòng giống nhau được nén thành một pack Có 4 loại pack sau:
- Loại 1: Gói các dòng giống nhau Quy cách gói tin này 0x00 0x00 0xFFCount 3 bytes đầu cho biết số các dãy giống nhau, bytes cuối cho biết số cácdòng giống nhau
- Loại 2: Gói các dãy giống nhau Quy cách gói này 0x00 Count Bytes thứ haicho số các dãy giống nhau được nén trong gói Độ dài cử dãy được ghi đầufile
- Loại 3: Dãy các pixel không giống nhau, không lặp lại và không nén được.Quy cách như sau: 0x80 Count Bytes thứ hai cho biết độ dài dãy các pixelkhông giống nhau, không nén được
- Loại 4: Dãy các pixel giống nhau Tuỳ theo các bit cao của bytes đầu được bậthay tắt, nếu bit cao được bật(giá trị 1) thì đây là gói nén các bytes chỉ gồm bit
0, số các bytes được nén được tính bởi 7 bit thấp còn lại Nếu bit cao tắt (giátri 0) thì đây là gói nén các bytes toàn bit 1 Số các bytes được nén được tínhbởi 7 bit thấp còn lại Các cảu file IMG phong phú như vậy là do ảnh IMG làảnh đen trắng nên chỉ cần 1 bit cho một pixel thay vì 4 hoặc 8 bit như đã nói ở
Trang 24trên toàn bộ ảnh chỉ có điểm sáng hoặc tối tương ứng với 1 hoặc 0 Tỷ lệ néncủa file này là khá cao.
1.3.2 File ảnh PCX
Định dạng ảnh PCX là một trong những định dạng ảnh cổ điển nhất Nó sử dụngphương pháp mã loạt dài RLE (Run-Length-Encoded) để nén dữ liệu ảnh Quá trìnhnén và giải nén được thực hiện trên từng dòng ảnh Thực tế, phương pháp giải nénPCX kém hiệu quả hơn so với kiểu IMG Tệp PCX gồm 3 phần: đầu tệp (header), dữliệu ảnh (image data) và bảng màu mở rộng
Header của tệp PCX có kích thước cố định gồm 128 byte và được phân bố nhưsau:
1 byte : chỉ ra kiểu định dạng Nếu là kiểu PCX/PCC nó luôn có giá trị là0Ah
1 byte: chỉ ra version sử dụng để nén ảnh, có thể có các giá trị sau:
- 0: version 2.5
- 2: version 2.8 với bảng màu
- 3: version 2.8 hay 3.0 không có bảng màu
- 5: version 3.0 có bảng màu
1 byte: chỉ ra phương pháp mã hoá Nếu là 0 thì mã hoá theo phươngpháp BYTE PACKED, nếu không là phương pháp RLE
1 byte: số bit cho một điểm ảnh plane
1 word: toạ độ góc trái trên của ảnh Với kiểu PCX nó có giá trị là (0,0);còn PCC thì khác (0,0)
1 word: toạ độ góc phải dưới
1 word: kích thước bề rộng và bề cao ảnh
1 word: số điểm ảnh
1 word: độ phân giải màn hình
1 word
48 byte: chia thành 16 nhóm, mỗi nhóm 3 byte Mỗi nhóm này chứathông tin về một thanh ghi màu Như vậy ta có 16 thanh ghi màu
1 byte: không dùng đến và luôn đặt là 0
1 byte: số bit plane mà ảnh sử dụng Với ảnh 16 màu, giá trị này là 4, vớiảnh 256 màu (1 pixel/8 bit) thì số bit plane lại là 1
1 byte: số bytes cho một dòng quét ảnh
1 word: kiểu bảng màu
58 byte: không dùng
Trang 25Tóm lại, định dạng ảnh PCX thường được dùng để lưu trữ ảnh vì thao tác đơngiản, cho phép nén và giải nén nhanh Tuy nhiên vì cấu trúc của nó cố định, nên trongmột số trường hợp nó làm tăng kích thước lưu trữ Và cũng vì nhược điểm này mà mộtsố ứng dụng lại sử dụng một kiểu định dạng khác mềm dẻo hơn: định dạng TIFF(Targed Image File Format) sẽ mô tả dưới đây.
Hình 1.3 Cấu trúc tệp ảnh dạng PCX
1.3.3 Định dạng ảnh GIF(Graphics Interchanger Format)
Cách lưu trữ kiểu PCX có lợi về không gian lưu trữ: với ảnh đen trắng kích thướctệp có thể nhỏ hơn bản gốc từ 5 đến 7 lần Với ảnh 16 màu, kích thước ảnh nhỏ hơnảnh gốc 2-3 lần, có trường hợp có thể xấp xỉ ảnh gốc Tuy nhiên, với ảnh 256 màu thìnó bộc lộ rõ khả năng nén rất kém Điều này có thể lý giải như sau: khi số màu tănglên, các loạt dài xuất hiện ít hơn và vì thế, lưu trữ theo kiểu PCX không còn lợi nữa.Hơn nữa, nếu ta muốn lưu trữ nhiều đối tượng trên một tệp ảnh như kiểu định dạngTIFF, đòi hỏi có một định dạng khác thích hợp
Định dạng ảnh GIF do hãng ComputServer Incorporated (Mỹ) đề xuất lần đầutiên vào năm 1990 Với địng dạng GIF, những vướng mắc mà các định dạng khác gặpphải khi số màu trong ảnh tăng lên không còn nữa Khi số màu càng tăng thì ưu thếcủa định dạng GIF càng nổi trội Những ưu thế này có được là do GIF tiếp cận cácthuật toán nén LZW(Lempel-Ziv-Welch) Bản chất của kỹ thuật nén LZW là dựa vào
sự lặp lại của một nhóm điểm chứ không phải loạt dài giống nhau Do vậy, dữ liệucàng lớn thì sự lặp lại càng nhiều Dạng ảnh GIF cho chất lượng cao, độ phân giải đồhoạ cũng đạt cao, cho phép hiển thị trên hầu hết các phần cứng đồ hoạ Định dạng tổngquát của ảnh GIF như sau:
Chữ ký của ảnh
Bộ mô tả hiển thị
Bản đồ màu tổng thể
Trang 26 Mô tả một đối tượng của ảnh
- Dấu phân cách
- Bộ mô tả ảnh
- Bản đồ màu cục bộ
- Dữ liệu ảnh
Ảnh màu
Quá trình giấu tin vào ảnh màu cũng tương tự như với ảnh đen trắng nhưng trướchết ta phải chọn từ mỗi điểm ảnh ra bit có trọng số thấp nhất (LSB) để tạo thành mộtảnh nhị phân gọi là ảnh thứ cấp Sử dụng ảnh thứ cấp này như ảnh môi trường để giấutin, sau khi biến đổi ảnh thứ cấp ta trả nó lại ảnh ban đầu để thu được ảnh kết quả
Ảnh đa cấp xám
- Đối với ảnh đa cấp xám bảng màu của nó đã có sẵn, tức là những cặp màutrong bảng màu có chỉ số chênh lệch càng ít thì càng giống nhau Vì vậyđối với ảnh đa cấp xám bit LSB của mỗi điểm ảnh là bit cuối cùng củamỗi điểm ảnh
- Quá trình tách bit LSB của ảnh đa cấp xám và thay đổi các bit này bằngthuật toán giấu tin trong ảnh đen trắng sẽ làm chỉ số của điểm màu bị thayđổi tăng hoặc giảm 1 đơn vị, do đó điểm ảnh mới sẽ có độ sáng tối của ômàu liền trước hoặc liền sau ô màu của điểm ảnh cũ Bằng mắt thường rấtkhó có thể nhận thấy sự thay đổi về độ sáng tối này
Ảnh nhỏ hơn hoặc bằng 8 màu
- Những ảnh thuộc loại này gồm có 16 màu (4 bit màu) và ảnh 256 màu (8bit màu) Khác với ảnh màu, ảnh xám với số bit nhỏ hơn hoặc bằng 8 bitkhông phải luôn luôn được sắp xếp màu bảng màu
- Những màu ở liền kề nhau trong bảng màu có thể rất khác nhau chẳng hạnnhư màu đen với màu trắng vẫn có thể được xếp cạnh nhau
- Vì vậy việc xác định bit LSB của ảnh loại này rất khó Nếu ta chỉ làm nhưđối với ảnh xám, tức là vẫn lấy bit cuối cùng của mỗi điểm ảnh để tạo
Trang 27thành ảnh thứ cấp thì mỗi thay đổi 0 -> 1 hoặc 1 ->0 trên ảnh thứ cấp cóthể làm cho ảnh màu của điểm ảnh cũ và mới tương đương ứng thay đổirất nhiều dù chỉ số màu của chúng cũng tăng hoặc giảm 1 mà thôi
Ảnh hightcolor (16 bit màu)
Ảnh 16 bit màu thực tế chỉ sử dụng 15 bit cho mỗi điểm ảnh trong đó 5 bit biểudiễn cường độ tương đối của màu đỏ, 5 bit biểu diễn cường độ tương đối của màuxanh lam, 5 bit biểu diễn cường độ tương đối của màu xanh lơ Còn lại một bit khôngdùng đến là bit cao nhất của byte thứ hai trong mỗi cặp thứ hai byte biểu diễn mộtđiểm ảnh, đó chính là bit LSB của ảnh 16 bit màu Việc thay đổi giá trị của những bitnày sẽ không hề ảnh hưởng tới màu sắc của từng điểm ảnh trong môi trường
Ảnh true color (24 bit màu)
- Ảnh true color sử dụng 3 byte cho mỗi điểm ảnh, mỗi byte biểu diễn mộtthành phần trong cấu trúc RGB Trong mỗi byte các bit cuối cùng của mỗibyte trong phần dữ liệu ảnh là các bit LSB của ảnh true color
- Để tăng lượng thông tin giấu được vào ảnh môi trường, từ mỗi byte củaảnh true color ra sẽ lấy nhiều hơn một bit để tạo thành ảnh thứ cấp Thôngthường cũng chỉ nên lấy nhiều nhất 4 bit cuối cùng của mỗi byte để ảnhkết quả không bị nhiễu đáng kể, khi đó lượng thông tin tối đa có thể giấutrong ảnh cũng tăng lên gấp bốn lần so với lượng thông tin tối đa giấuđược trong ảnh đó nếu chỉ lấy 1 bit cuối cùng ở từng byte
1.3.5 Cấu trúc ảnh BMP
Để thực hiện việc giấu tin trong ảnh, trước hết ta phải nghiên cứu cấu trúc củaảnh và có khả năng xử lý được ảnh tức là phải số hoá ảnh Quá trình số hoá các dạngảnh khác nhau và không như nhau Có nhiều loại ảnh đã được chuẩn hoá như: JPEG,PCX, BMP… Sau đây là cấu trúc ảnh *.BMP
Mỗi file ảnh BMP gồm 3 phần:
BitmapHeader (54 byte)
Palette màu (bảng màu)
BitmapData (thông tin ảnh)
Cấu trúc cụ thể của ảnh:
Palette màu (bảng màu): bảng màu của ảnh, chỉ những ảnh lớn hơn hoặc bằng 8bit màu mới có Palette màu
BitmapData (thông tin ảnh): phần này nằm ngay sau phần palette màu của ảnhBMP Đây là phần chứa giá trị màu của điểm ảnh trong ảnh BMP, các dòng ảnh đượclưu từ dưới lên trên, các điểm ảnh được lưu từ trái sang phải Giá trị của mỗi điểm ảnh
là một chỉ số trỏ tới phần tử màu tương ứng của palette màu
Trang 28Hình 1.4 BitmapHeader(54 byte)Thành phần BitCount của cấu trúc BitmapHeader cho biết số bit dành cho mỗiđiểm ảnh và số lượng màu lớn nhất của ảnh BitCount có thể nhận các giá trị sau:
1: Bitmap là ảnh đen trắng, mỗi bit biểu diễn 1 điểm ảnh Nếu bit mang giá trị 0thì điểm ảnh là đen, bit mang giá trị 1 điểm ảnh là điểm trắng
4: Bitmap là ảnh 16 màu, mỗi điểm ảnh được biểu diễn bởi 4 bit
8: Bitmap là ảnh 256 màu, mỗi điểm ảnh biểu diễn bởi 1 byte
16: Bitmap là ảnh highcolor, mỗi dãy 2 byte liên tiếp trong bitmap biểu diễncường độ tương đối của màu đỏ, xanh lá cây, xanh lơ của một điểm ảnh
24: Bitmap là ảnh true color (224 màu), mỗi dãy 3 byte liên tiếp trong bitmapbiểu diễn cường độ tương đối của màu đỏ, xanh lá cây, xanh lơ (RGB) của một điểmảnh
Thành phần ColorUsed của cấu trúc BitmapHeader xác định số lượng màu củapalette màu thực sự được sử dụng để hiển thị bitmap Nếu thành phần này được đặt là
0, bitmap sử dụng số màu lớn nhất tương ứng với giá trị của BitCount
1.3.6 Cấu trúc ảnh PNG
Là một dạng hình ảnh sử dụng phương pháp nén dữ liệu mới không làm mất đidữ liệu gốc PNG được tạo ra nhằm cải thiện và thay thế định dạng ảnh GIF với mộtđịnh dạng hình ảnh không đòi hỏi phải có giấy phép sáng chế sử dụng PNG được hỗ
Trang 29trợ bởi thư viện tham chiếu Libpng, một thư viện nền độc lập bao gồm các hàm của C
PNG là cấu trúc như một chuỗi các thành phần, mỗi thành phần chứa kích thước,kiểu, dữ liệu, và mã sửa lỗi CRC ngay trong nó
Chuỗi được gán tên bằng 4 chữ cái phân biệt chữ hoa chữ thường Sự phân biệtnày giúp bộ giải mã phát hiện bản chất của chuỗi khi nó không nhận dạng được
Với chữ cái đầu, viết hoa thể hiện chuỗi này là thiết yếu, nếu không thì ít cầnthiết hơn Ancillary Chuỗi thiết yếu chứa thông tin cần thiết để đọc được tệp và nếu bộgiải mã không nhận dạng được chuỗi thiết yếu,việc đọc tệp phải được hủy
Về cơ bản, định dạng PNG đem lại cho ta những ưu thế vượt trội hơn so với cácđịnh dạng phổ thông khác hiện nay như JPG, GIF, BMP…Những ưu thế tỏ rõ sứcmạnh hơn khi được sử dụng trong môi trường đồ họa web
Giảm thiểu dung lượng: Trong tất cả các định dạng ảnh phổ thông hiện nay thìhình ảnh PNG có thể coi là dung lượng nhỏ nhất Điều này rất quan trọng khi sử dụngPNG trong môi trường web
Độ sâu của màu: Ảnh PNG hỗ trợ đến true color 48bit màu Trong khi đó ảnhgif chỉ ở mức 256 màu
1.4 CÁC ĐỊNH NGHĨA CƠ BẢN VỀ HISTOGRAM
1.4.1 Định nghĩa histogram là gì?
Lược đồ mức xám (histogram) của một ảnh, từ nay về sau ta qui ước gọi là lược
đồ xám, là một hàm cung cấp tần suất xuất hiện của mỗi mức xám (grey level)
Lược đồ xám được biểu diễn trong một hệ toạ độ vuông góc x,y Trong hệ toạ độnày, trục hoành biểu diễn số mức xám từ 0 đến N, N là số mức xám (256 mức trongtrường hợp chúng ta xét) Trục tung biểu diễn số điểm ảnh cho một mức xám (số điểmảnh có cùng mức xám) Cũng có thể biểu diễn khác một chút: trục tung là tỷ lệ số điểmảnh có cùng mức xám trên tổng số điểm ảnh
Trang 30Hình 1.5 Lược đồ xám của ảnh
Hình 1.6 Một ví dụ về biểu đồ tần suất histogramHistogram cung cấp cho những thông cơ bản, như độ sáng và độ tương phản(contrast) của ảnh Độ tương phản đặc trưng cho sự thay đổi độ sáng của đối tượng sovới nền Có thể nói, độ tương phản là độ nổi của điểm ảnh hay vùng ảnh so với nền Tacó một vài nhận xét về histogram:
NX1: Histogram tốt có hình ngọn núi với độ cao tăng dần từ trái, cao nhất ởgiữa và thấp nhất ở bên phải Điều đó chứng tỏ số lượng điểm ảnh nhiều nhất là ở độsáng trung bình (Xem Hình 1.7)
Trang 31Hình 1.7 Histogram tốt
NX2: Ảnh quá tối, histogram bị nghiêng về bên trái, có một cái cột gần nhưthẳng đứng sát trái (Xem Hình 1.8)
Hình 1.8 Histogram của ảnh quá tối
NX3: Ảnh quá sáng: histogram bị nghiêng về bên phải, có một cái cột gần nhưthẳng đứng sát phải (Xem Hình 1.9)
Trang 32Hình 1.9 Histogram của ảnh quá sáng
NX4: Ảnh quá tương phản: có hai cái cột nằm ở 2 đầu trái phải ( Xem Hình1.10)
Hình 1.10 Histogram của ảnh quá tương phản
NX5: Ảnh kém tương phản: dải màu bị dồn vào giữa, hai đầu không có gì.(Xem Hình 1.11)
Hình 1.11Histogram của ảnh kém tương phản
Từ lược đồ xám ta có thể suy diễn ra các tính chất quan trọng của ảnh như giá trịxám trung bình hoặc độ tản mạn Qua cách tác động lên điểm ảnh, sự phân bố của biểu
đồ cột được thay đổi theo mục đích Dựa vào lược đồ xám chúng ta có thể xác địnhđược ngưỡng thích hợp cho quá trình phân đoạn hoặc tính được các đại lượng đặctrưng của một ảnh
1.5 PHẠM VI ỨNG DỤNG CỦA XỬ LÝ ẢNH
Xử lý ảnh đã đem lại nhiều ứng dụng trong nhiều lĩnh vực khác nhau: y học,khoa học hình hình sự, khí tượng thuỷ văn, quản lý, giáo dục
Trang 33CHƯƠNG 2 PHẦN MỀM LABVIEW VÀ XỬ LÝ ẢNH VỚI
LABVIEW [2]
2.1 GIỚI THIỆU LABVIEW
LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench) là một
phần mềm máy tính được phát triển bởi National Instruments LabVIEW được dùngtrong các phòng thí nghiệm, lĩnh vực khoa học kỹ thuật như điện tử, cơ điện tử, hàngkhông, tự động hóa, điều khiển, hóa sinh, điện tử y sinh ở các nước đặc biệt là Mỹ,Hàn quốc, Nhật Bản
LabVIEW khác với các ngôn ngữ lập trình thông thường khác ở điểm cơ bản là:các ngôn ngữ lập trình khác thường dùng trên cơ chế dòng lệnh, trong khi đóLabVIEW dùng ngôn ngữ lập trình ở dạng sơ đồ khối
Hình 2.1 Màn hình khởi động LabVIEW
2.1.2 Ưu điểm và nhược điểm LabVIEW
Ưu điểm:
Xây dựng các dụng cụ điều khiển và hiện thị giống như thật, nhanh chóng, dễdàng
Lập trình dễ dàng cho các công việc phức tạp
Tất cả khả năng của LabVIEW đều được nhìn thấy trực quan
Nhược điểm:
Trang 34 Khác hoàn toàn những ngôn ngữ lập trình thông thường
Dễ bị rối trong các biểu đồ quá phức tạp nếu không lên kế hoạch ban đầu đểxây dựng kỹ lưỡng chương trình
2.1.3 Các khả năng chính của LabVIEW
LabVIEW được biết đến như là một ngôn ngữ lập trình với khái niệm hoàn toànkhác so với các ngôn ngữ lập trình truyền thống như ngôn ngữ C, Pascal Bằngcách diễn đạt cú pháp thông qua các hình ảnh trực quan trong môi trường soạnthảo, LabVIEW đã được gọi với tên khác là lập trình G (viết tắt của Graphical) Hiệntại ngoài phiên bản LabVIEW cho các hệ điều hành Window, Linux, hãng NI đã pháttriển các modul LabVIEW cho máy hỗ trợ cá nhân (PDA)
2.1.4 Môi trường phát triển LabVIEW
Phát triển nhanh với công nghệ Express: sử dụng Express VIs và I/O nhanhchóng để tạo ra các ứng dụng đo lường phổ biến mà chúng ta không cần phải lậptrình Với hàng nghìn chương trình minh họa, kiểu module và phân cấp, thư viện giaodiện người sử dụng kéo và thả hàng nghìn chức năng lập sẵn, ngôn ngữ được biêndịch để thực hiện nhanh hơn Đến phát triển lớn, theo hướng nhóm (team-oriented): Ngôn ngữ mở, gỡ rối bằng đồ họa tích hợp, phân phối ứng dụng đơngiản, nhiều công cụ phát triển ở cấp cao, công cụ phát triển nhóm, điều khiển mãnguồn, quản lý đích Thu thập, phân tích và hiển thị lập sẵn Vì LabVIEW cung cấptính kết nối tới hầu hết mọi thiết bị đo, nên bạn có thể dễ dàng kết hợp những ứngdụng LabVIEW mới vào các hệ thống hiện tại Bất chấp mọi yêu cầu của phầncứng, LabVIEW cung cấp một giao diện để kết nối tới I/O một cách dễ dàng Thôngtin chi tiết có tại trang web ni.com/labVIEWtools
2.1.5 Các tín hiệu đo được với LabVIEW
Nhiệt độ, sức căng, độ rung, âm thanh, điện áp, dòng, tần số, ánh sáng, điệntrở, xung, thời gian (giai đoạn), tín hiệu số, thu thập tín hiệu từ các thiết bị bên ngoàinhư cảm biến nhiệt độ, hình ảnh từ webcam, vận tốc của động cơ,
Trang 35xử lý các tín hiệu thu nhận được để phục vụ các mục đích nghiên cứu hay mục đíchcủa hệ thống mà người lập trình mong muốn.
2.1.7 Hiển thị
Xây dựng các giao diện người dùng một cách nhanh chóng và thẩm mỹ hơnnhiều so với các ngôn ngữ khác như Visual Basic, Matlab Hiển thị dữ liệu baogồm các chức năng: trực quan, tạo báo cáo và quản lý dữ liệu LabVIEW bao gồm cáccông cụ trực quan giúp hiển thị dữ liệu hấp dẫn, trong đó có các tiện ích vẽ biểu đồ
và đồ thị cùng các công cụ trực quan 2D, 3D cài sẵn Nguời sử dụng có thể nhanhchóng cấu hình lại các thuộc tính của phần hiển thị như màu sắc, kích cỡ phông,kiểu đồ thị, quay, phóng to thu nhỏ và quay quét (pan) đồ thị khi đang chạy Thêm vàođó, ta có thể xem và điều khiển VIs qua Internet bằng LabVIEW Đối với việc tạobáo cáo, NI cung cấp một số tùy chọn như công cụ tạo tài liệu, báo cáo dạng HTML,báo cáo dạng Word/Excel và báo cáo tương tác với NI DIA
Hình 2.2 Khả năng hiển thị của phần mềm Labview
2.1.8 Điều khiển
LabVIEW đã tích hợp nhiều công cụ và tính năng hơn giúp kỹ sư điều khiển tựđộng dễ dàng thực hiện các bài toán về điều khiển Cho phép thực hiện các thuật toánđiều khiển như PID, Logic mờ (Fuzzy), một cách nhanh chóng thông qua các chứcnăng tích hợp sẵn trong LabVIEW Cho phép kết hợp với nhiều ngôn ngữ truyềnthống như C, C++
2.1.9 Giao tiếp với thiết bị ngoại vi
Giao tiếp với các thiết bị ngoại vi thông qua nhiều chuẩn giao tiếp thông qua cáccổng giao tiếp: RS232, RS485, USB, PCI, Enthernet
Trang 36Hình 2.3 Giao tiếp với thiết bị ngoại vi
2.2 NHỮNG KHÁI NIỆM CƠ BẢN CỦA LABVIEW
2.2.1 VI (Vitual Instrument) - Thiết bị ảo
Lập trình Labview được thực hiện trên cơ sở là các thiết bị ảo (VI) Các đốitượng trong các thiết bị ảo được sử dụng để mô phỏng các thiết bị thực, nhưng chúngđược thêm vào bởi phần mềm Các VI tương tự như các hàm trong lập trình bằngngôn ngữ
2.2.2 Front Panel và Block Diagram
Một chương trình trong LabView gồm hai phần chính: một là giao diện vớingười sử dụng (Front Panel), hai là giao diện dạng sơ đồ khối cung cấp mã nguồn(Block Diagram) và các biểu tượng kết nối (Icon/Connector)
2.2.2.1 Front Panel(Bảng giao diện)
Front panel là một panel tương tự như panel của thiết bị thực tế Ví dụ các nútbấm, nút bật, các đồ thị và các bộ điều khiển Từ Front Panel người dùng chạy vàquan sát kết quả có thể dùng chuột, bàn phím để đưa dữ liệu vào sau đó chochương trình chạy và quan sát Front Panel thường gồm các bộ điều khiển(Control) và các bộ hiển thị (Indicator)
Control là các đối tượng được đặt trên Front Panel để cung cấp dữ liệu chochương trình Nó tương tự như đầu vào cung cấp dữ liệu
Trang 37 Indicator là đối tượng được đặt trên Front Panel dùng để hiện thị kết quả, nótương tự như bộ phận đầu ra của chương trình.
Hình 2.4 Bảng giao diện LabVIEWNgoài ra bạn vẫn có thể mở bảng giao diện một VI có sẵn trong thư việnLabVIEW nếu đã ở sẵn trong một bảng giao diện bằng cách vào File>>Open
Trong bảng giao diện bao gồm một thanh công cụ của các nút lệnh và các dụngcụ chỉ báo trạng thái mà bạn sử dụng cho quá trình chạy và xử lý các VI
Nó cũng bao gồm những tùy chọn font chữ và tùy chọn phân phối và sắp thànhhàng cho việc soạn thảo các VI
Hình 2.5 Thanh công cụ giao diện LabVIEWTrong đó:
1 Nút chạy chường trình (thanh không sáng – bị vỡ: lỗi, phải sửa lại chươngtrình)
2 Nút chạy lặp
3 Nút dừng cưỡng ép chương trình
4 Nút tạm dừng
5 Text setting (màu sắc, định dạng, kích thước – phông)
6 Gióng đều đối tượng theo hàng dọc và ngang
Trang 387 Phân bố các đối tượng
8 Thay đổi kích thước đối tượng
9 Lệnh bổ sung
10 Cửa sổ trợ giúp
2.2.2.2 Block Diagram(Sơ đồ khối)
Block Diagram chứa đựng mã nguồn đồ thị, thường biết như là mã G hoặc mã sơ
đồ khối, cho đến VI chạy như thế nào Mã sơ đồ khối sử dụng đồ thị biểu diễn cácchức năng để điều khiển các đối tượng trên giao diện Các đối tượng trên giao diệnxuất hiện như biểu tượng các thiết bị trên sơ đồ khối Kết nối điều khiển và các đầucủa dụng cụ chỉ thị tới Express VIs, VIs, và các chức năng Dữ liệu chuyển thông quadây dẫn từ các điều khiển đến các VI và các hàm chức năng, từ các VI và các hàmchức năng đến các VI và các hàm chức năng khác, và từ các VI và các hàm chức năngđến các dụng cụ chỉ thị Sự di chuyển của dữ liệu thông qua các nút trên sơ đồ khốixác định mệnh lệnh thực hiện của các VI và các hàm chức năng Sự di chuyển dữ liệunày được biết như lưu đồ lập trình
Cấu trúc của một Block Diagram gồm các thiết bị đầu cuối (Terminal), nút(Node) và các dây nối (wire)
Hình 2.6 Các thành phần trong Block Diagram
Trang 39 Sự phân cấp
Sức mạnh của LabVIEW định vị trong bản chất sự phân cấp của các VI.Sau khi bạn tạo ra một VI, bạn sử dụng nó như một VI con trong sơ đồ khối của một
VI tầng cao hơn Bạn có thể có một số vô tận bản chất của các tầng trong sự phân cấp
Các dạng dây nối trên sơ đồ khối
Hình 2.7 Các kiểu dữ liệu trong LabVIEW
2.2.3 Icon & Connector
Icon (biểu tượng): là biểu tượng của VI, được sử dụng khi từ một VI muốn sửdụng chức năng của một VI khác Khi đó VI đó được gọi là SubVI, nó tương đươngnhư một chương trình con trong các ngôn ngữ khác
Connector (đầu nối): là một phần tử của Terminal dùng để nối các đầu vào vàđầu ra của các VI với nhau khi sử dụng Mỗi VI có một Icon mặc định hiển thị trongbảng Icon ở góc trên bên phải cửa sổ Front Palette và Block Diagram
Khi các VI được phân cấp và module hóa thì ta có thể dùng chúng như cácchương trình con Do đó để xây dựng một VI ta có thể chia thành nhiều VI thực hiệncác chức năng đơn giản và cuối cùng kết hợp chúng lại với nhau thành một khối đểthực thi những công việc cụ thể trong một chương trình
2.2.4 Các kỹ thuật lập trình trên LabVIEW:
Khác với những ngôn ngữ lập trình khác, ngôn ngữ lập trình LabVIEW ngoàinhững menu quen thuộc giống như những ngôn ngữ khác LabVIEW còn sử dụng cácbảng: Tools Palette, Controls Palette, Function Palette, chính những bảng này làm choLabVIEW khác với các ngôn ngữ sử dụng những câu lệnh rườm rà khó nhớ Cácbảng đó cung cấp các chức năng để người sử dụng có thể tạo và thay đổi trên FrontPanel và Block Diagram bằng các biểu tượng, các hình ảnh trực quan giúp cho việc
sử dụng trở nên dễ dàng, linh động hơn
Trang 402.2.5 Tool palette
Tool Panel xuất hiện trên cả Font Panel và Block Diagram Bảng này cho phépngười sử dụng có thể xác lập các chế độ làm việc đặc biệt của con trỏ chuột Khi lựachọn một công cụ, biểu tượng của con trỏ sẽ được thay đổi theo biểu tượng của côngcụ đó Nếu thiết lập chế độ tự động lựa chọn công cụ và người sử dụng di chuyển contrỏ qua các đối tượng trên Front Panel hoặc Block Diagram, LabVIEW sẽ tự động lựachọn công cụ phù hợp trên bảng Tool Palett
2.2.6 Controls Palette (bảng điều khiển)
Bảng điều khiển chỉ duy nhất xuất hiện trên Front panel Bảng điều khiển chứacác bộ điều khiển (control) và các bộ hiển thị (indicator) Bảng điều khiển đầy đủđược minh họa như hình bên đưới Để mở bảng controls palette ta vào menu View,chọn controls palette
Bảng điều khiển được sử dụng để người sử dụng thiết kế cấu trúc mặt hiển thịgồm các thiết bị ví dụ: các công tắc, các loại đèn, các loại màn hình hiển thị…Với bảng điều khiển này, người sử dụng có thể chọn các bộ thiết bị chuẩn do hãng sảnxuất cung cấp ví dụ công tắc nhưng cũng có thể chọn các thiết bị do người sử dụng tựxây dựng Bảng điều khiển dùng để cung cấp dữ liệu đầu vào và hiển thị kết quả đầura
Hình 2.8 Controls paletteTrên bảng controls palette thể hiện khá phong phú các bộ điều khiển khác nhaunhư trên hình Ta có thể sử dụng tất cả các thanh phần của bảng controls, ở hìnhtrên mục Express đang được mở, sau đây ta xem qua một số bộ điều khiển điểnhình của LabVIEW
Numeric controls / Indicators