Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 66 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
66
Dung lượng
1,82 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH KHỐ LUẬN TỐT NGHIỆP THIẾTKẾVÀCHẾTẠOMƠHÌNHNHẬNDẠNGMÃVẠCHỨNGDỤNGCÔNGNGHỆXỬLÝẢNH Họ tên sinh viên: Hà Tấn Đắc Trần Thành Tuân Ngành: CƠ ĐIỆN TỬ Niên khoá: 2007 - 2011 Tháng năm 2011 THIẾTKẾVÀCHẾTẠOMƠHÌNHNHẬNDẠNGMÃVẠCHỨNGDỤNGCÔNGNGHỆXỬLÝẢNH Tác giả HÀ TẤN ĐẮC TRẦN THÀNH TUÂN Khóa luận đệ trình để đáp ứng yêu cầu cấp Kỹ sư ngành CƠ ĐIỆN TỬ Giáo viên hướng dẫn: ThS Nguyễn Lê Tường KS Huỳnh Cao Vân Tháng năm 2011 i LỜI CẢM ƠN Sau gần năm học tập rèn luyện, kiến thức mà Thầy/ Cơ mơn Cơ điện tử, khoa Cơ khí – Công nghệ, trường Đại học Nông Lâm TP.HCM truyền đạt thực cung cấp hành trang hữu ích quý báu để giúp chúng em vững bước tự tin đường nghiệp trước mắt Em xin chân thành cảm ơn tậm tâm, lòng nhiệt tình khơng ngại khó khăn vất vảmà Thầy cô dành cho sinh viên chúng em suốt quãng thời gian vừa qua Đặc biệt chúng em biết ơn ThS Nguyễn Lê Tường hỗ trợ tận tình giúp đỡ chúng em suốt trình chúng em thực đề tài Chúng em muốn gửi lời cảm ơn chân thành đến Quý Thầy/ Cô Hội đồng giành thời gian quý báu để nhận xét đóng góp ý kiến để khóa luận chúng em thêm hồn thiện Cuối cùng, chúng em muốn gửi lời chúc sức khỏe, hạnh phúc thành công đến thầy cô TP Hồ Chí Minh, ngày 30 tháng 05 năm 2011 Sinh viên thực Hà Tấn Đắc Trần Thành Tuân ii TÓM TẮT Đề tài nghiên cứu “Thiết kếchếtạomơhìnhnhậndạngmãvạchứngdụngcơngnghệxửlý ảnh” tiến hành ĐẠI HỌC NÔNG LÂM TP.HCM, thời gian từ 08/03/2011 đến 30/05/2011 Mục đích đề tài tạocơng cụ viết ngôn ngữ C# kết hợp với thư viện mã nguồn mở EmguCV để nhậndạngmãvạch xuất sở liệu côngnghệxửlýảnh Các mãvạchthiếtkế sẵn dán lên thẻ Webcam lắp hộp đen có chiếu sáng chụp hìnhmãvạch thẻ đưa vào Ảnh chụp lưu vào nhớ RAM chuyển thành ảnh xám Ảnh nhị phân chuyển từ ảnh xám xửlý để tính diện tích vạch hiển thị giá trị tương ứngvạch Giá trị mãvạch so sánh với sở liệu có sẵn Nếu giá trị mãvạch thẻ giá trị mãvạch sở liệu khớp chương trình hiển thị thơng tin tương ứng với mãvạch iii MỤC LỤC Trang tựa i Lời cảm ơn .ii Tóm tắt đề tài iii Mục lục iv Danh sách chữ viết tắt vii Danh mục hình vẽ viii CHƯƠNG 1: MỞ ĐẦU 1.1 Lý chọn đề tài 1.2 Nhiệm vụ đề tài 1.3 Mục đích đề tài 1.4 Phương pháp nghiên cứu CHƯƠNG 2: TỔNG QUAN VÀ CÁC VẤN ĐỀ LIÊN QUAN 2.1 Xửlýảnh vấn đề xửlýảnh 2.1.1 Xửlýảnh gì? 2.1.2 Các khái niệm xửlýảnh 2.1.3 Thu nhậnảnh 2.1.4 Ứngdụngxửlýảnh 2.2 Tổng quan mãvạch 2.2.1 Lịch sử 2.2.2 Các dạngmãvạch 11 2.2.3 Các loại mãvạch thông dụng 14 2.2.4 Ứngdụngmãvạch 16 2.3 Tổng quan máy đọc mãvạch 17 2.3.1 Barcode Scanner 17 2.3.2 Cấu tạo máy quét barcode quang học 17 2.3.3 Nguyên lý hoạt động máy quét barcode quang học 18 2.3.4 Phân loại máy quét barcode quang học 19 2.4 Tìm hiểu ngơn ngữ C# 25 2.5 EmguCV 26 2.6 Các phương pháp chiếu sáng 28 2.6.1 Chiếu sáng trực tiếp vào đối tượng 28 2.6.2 Chiếu sáng khuếch tán trước đối tượng 28 iv 2.6.3 Chiếu sáng phân cực 29 2.6.4 Chiếu sáng đồng trục 29 2.6.5 Chiếu sáng theo cấu trúc 30 2.6.6 Chiếu sáng phía sau 30 2.7 Các phần mềm ứngdụngxửlýảnhnhậndạngmãvạch 31 2.7.1 Phần mềm nước 31 2.7.2 Phần mềm nước 32 CHƯƠNG 3: VẬT LIỆU VÀ PHƯƠNG PHÁP NGHIÊN CỨU 3.1 Vật liệu phương tiện 35 3.2 Phương pháp 35 3.2.1 Nghiên cứu lý thuyết 35 3.2.2 Phương pháp thực 36 CHƯƠNG 4: KẾT QUẢ VÀ THẢO LUẬN 4.1 Hộp lấy ảnh thẻ 37 4.1.1 Hộp lấy ảnh 37 4.1.2 Thẻ mãvạch 40 4.2 Chương trình 42 4.2.1 Giao diện chương trình 42 4.2.2 Cơ sở liệu 42 4.2.3 Lưu đồ giải thuật chương trình 43 4.3 Kết khảo nghiệm 47 CHƯƠNG 5: KẾT LUẬN VÀ ĐỀ NGHỊ 5.1 Kết đạt 53 5.2 Hướng phát triển đề tài 53 TÀI LIỆU THAM KHẢO 54 PHỤ LỤC 55 v DANH SÁCH CHỮ VIẾT TẮT ASCII – American Standard Code for Information Interchange CCD – Charge Coupled Device CMOS – Complementary Metal-Oxide-Semiconductor EAN – European Article Numbering GIS – Geographic Information System IDE – Integrated Development Environment Laser – Light Amplification by Stimulated Emission of Radiation LED – Light Emitting Diode RFID – Radio-frequency identification UPC – Universal Product Code USB – Universal Serial Bus Webcam – Web Camera XML – eXtensible Markup Language ID – Identìfy vi DANH SÁCH CÁC HÌNH Chương Hình 2.1 – Quá trình xửlýảnhHình 2.2 – Các bước hệ thống xửlýảnhHình 2.3 – Mã số EAN-13 14 Hình 2.4 – Ví dụ code 39 15 Hình 2.5 – Cấu tạo code 128 15 Hình 2.6 – Mãvạch theo code EAN-13 16 Hình 2.7 – Tròng CCD 17 Hình 2.8 – Máy đọc mãvạchdạng cầm tay 22 Hình 2.9 – Máy đọc mãvạchdạng để bàn 22 Hình 2.10 – Máy quét mãvạchdạng không dây 23 Hình 2.11 – Máy kéo thẻ barcode 24 Hình 2.12 – Cấu trúc tổng quát EmgCV 27 Hình 2.13 – Phương pháp chiếu sáng trực tiếp vào đối tượng 28 Hình 2.14 – Phương pháp chiếu sáng khuếch tán trước đối tượng 28 Hình 2.15 – Phương pháp chiếu sáng đồng trục 29 Hình 2.16 – Phương pháp chiếu sáng theo cấu trúc 30 Hình 2.17 – Phương pháp chiếu sáng phía sau 30 Hình 2.18 – Phần mềm nhậndạngmãvạch Barcode 12.0 KlinkSoft 31 Hình 2.19 – Giao diện phần mềm DTK Barcode Reader SDK 32 Hình 2.20 – Giao diện phần mềm EvoBarcode 34 Chương Hình 3.1 – Webcam Colorvis 1009 35 vii Chương Hình 4.1 – Hộp lấy ảnhthiếtkế Pro/E 38 Hình 4.2 – Mơhình thực tế hộp lấy ảnh 38 Hình 4.3 – Kết nối hộp lấy ảnh với máy tính 39 Hình 4.4 – Tạo font barcode với phần mềm High-Logic FontCreator 6.0 40 Hình 4.5 – Tạomãvạch với font barcode 40 Hình 4.6 – Mãvạch 41 Hình 4.7 – Thẻ có dán mãvạch 41 Hình 4.8 – Giao diện chương trình nhậndạngmãvạch 42 Hình 4.9 – Cơ sở liệu tạo Access 42 Hình 4.10 – Sơ đồ tổng quát chương trình 43 Hình 4.11 – Giải thuật chuyển sang ảnh nhị phân 44 Hình 4.12 – Giải thuật tính diện tích vạch 45 Hình 4.13 – Giải thuật nhậndạngvạch 46 Hình 4.14 – Kết khảo nghiệm với mãvạch có diện tích lớn 47 Hình 4.15 – Kết khảo nghiệm với mãvạch có diện tích nhỏ 48 Hình 4.16 – Kết khảo nghiệm với mãvạch ngẫu nhiên (02007) 49 Hình 4.17 – Kết khảo nghiệm với mãvạch ngẫu nhiên (92154) 50 Hình 4.18 – Kết khảo nghiệm với mã không hợp lệ 51 Hình 4.19 – Kết khảo nghiệm với trường hợp khơng có thẻ 52 Hình 4.20 – Kết khảo nghiệm với trường hợp bị kẹt thẻ 50 viii Chương MỞ ĐẦU 1.1 Lý chọn đề tài Như biết, mãvạchcôngnghệnhậndạng thu thập liệu tự động, đưa vào áp dụng đa ngành công nghiệp Trên giới, mãvạch đưa vào áp dụng đại trà từ 30 năm ngành khác như: bán lẻ, quốc phòng, y tế, giao thơng vận tải, thể thao truy tìm nguồn gốc, … Để ứngdụng ưu việt mãvạch vào thưc tế thiết bị đọc mãvach máy đọc mãvạch đời ngày trở nên phổ biến, giá thành máy đọc thường cao sử dụng cho mục đích đọc mãvạch Trong điều kiện kinh tế phát triển Việt Nam nay, việc tạo sản phẩm có giá thành rẻ để sử dụng lĩnh vực điều cần thiết Như ta biết côngnghệxửlýảnh phổ biến công nghiệp, ứngdụng vào thực tế sản xuất Và với camera thông dụng đủ tốt không đắt tiền viết chương trình nhậndạng camera tiết kiệm giá thành mua máy đọc mãvạch Hơn với camera sử dụng mục đích khác ngồi việc đọc mãvạch Đó ưu điểm lớn xửlýảnhcơng nghiệp Vì vậy, chúng em muốn vào nghiên cứu viết chương trình nhậndạngmãvạchứngdụngcôngnghệxửlý ảnh, chọn đề tài: “Thiết kếchếtạomơhìnhnhậndạngmãvạchứngdụngcơngnghệxửlý ảnh” 1.2 Nhiệm vụ đề tài Thiếtkếmãvạch Viết chương trình nhậndạngmãvạch ngôn ngữ C# Thiếtkế thi cơngmơhìnhnhậndạngmãvạch Tạo sở liệu 4.2.3 Lưu đồ giải thuật chương trình Begin Lấy ảnh từ webcam Chuyển sang ảnh xám Chuyển sang ảnh nhị phân (1) Tính diện tích vạch (2) Nhậndạng (3) Hiển thị liệu người dùng End Hình 4.10 – Sơ đồ tổng quát chương trình 43 a = 255: trắng a = 0: đen Hình 4.11 – Giái thuật chuyển sang ảnh nhị phân 44 Hình 4.12 – Giải thuật tính diện tích vạch 45 Hinh 4.13 – Giải thuật nhậndạngvạch 46 4.3 Kết khảo nghiệm Khảo nghiệm với mãvạch có diện tích lớn Mãvạch thẻ Giao diện hiển thị sau quét thẻ So sánh kết hiển thị với sở liệu Hình 4.14 – Kết kháo nghiệm với mãvạch có diện tích lớn 47 Khảo nghiệm với mãvạch có diện tích nhỏ Mãvạch thẻ Giao diện sau quét thẻ So sánh kết hiển thị với sở liệu Hình 4.15 – Kết khảo nghiệm với mãvạch có diện tích nhỏ 48 Khảo nghiệm với mãvạch ngẫu nhiên Mãvạch thẻ Giao diện sau quét thẻ So sánh kết hiển thị với sở liệu Hình 4.16 – Khảo nghiệm với mãvạch ngẫu nhiên (02007) 49 Mãvạch thẻ Giao diện sau quét thẻ So sánh kết hiển thị với sở liệu Hình 4.17 – Kết khảo nghiệm với mãvạch ngẫu nhiên (92154) 50 Khảo nghiệm với trường hợp mã khơng hợp lệ (khơng có sở liệu): với trường hợp này, chương trình đọc mã không xuất liệu Mãvạch thẻ Giao diện sau quét thẻ Hình 4.18 – Kết khảo nghiệm với mã không hợp lệ 51 Khảo nghiệm với trường hợp khơng có thẻ Hình 4.19 – Kết khảo nghiệm với trường hợp khơng có thẻ Khảo nghiệm với trường hợp bị kẹt thẻ: trường hợp tương tự trường hợp thẻ khơng hợp lệ Hình 4.20 – Kết khảo nghiệm với trường hợp bị kẹt thẻ 52 Chương KẾT LUẬN VÀ ĐỀ NGHỊ 5.1 Kết đạt - Đã chếtạo hộp lấy ảnh với cấu nhận nhả thẻ - Đã hồn thành chương trình nhậndạngmãvạch - Đã kết nối chương trình với sở liệu - Đã tạo giao diện xửlýảnh hiển thị sỏ liệu 5.2 Hướng phát triển đề tài - Ảnh thu thường bị biến dạngthiết bị quang học điện tử Vì cần bổ sung giải thuật nắn chỉnh biến dạng để chương trình nhậndạng xác - Nghiên cứu phương pháp lọc nhiễu nâng cao chất lượng ảnh - Nghiên cứu ứngdụng C# giao tiếp PC với vi điều khiển - Thiếtkế cấu nhận nhả thẻ tự động 53 TÀI LIỆU THAM KHẢO Tài liệu tham khảo Tiếng Việt [1] Lim S.J., 2001, Giáo trình xửlýảnh (GS Nguyễn Văn Ngọ dịch, Nguyễn Viết Kính hiệu đính), Khoa Cơngnghệ - Đại học Quốc gia, Hà Nội [2] TS.Đỗ Năng Tồn & TS.Phạm Việt Bình, Xửlý ảnh, Nhà xuất Đại học Thái Nguyên, Thái Nguyên, tháng 11 năm 2007 [3] Nguyễn Đỗ Anh Khoa, “Hướng dẫn học C# video” < http://congdongso.com/threads/4444-video-day-c-cua-thay-nguyen-do-anhkhoa.html?s=df139ab999bdb85e47bd6f2818f07961> [4] Trịnh Hoài Thanh, “Cắt ảnh C#” < http://forums.congdongcviet.com/showthread.php?t=15256 > [5] http://www.dientuvietnam.net/forums [6] http://vi.wikipedia.org/wiki [7] “Xử lýảnh C#”, ngày 17 tháng năm 2009 Truy cập ngày 20 tháng 03 năm 2011 Tài liệu tham khảo Tiếng nước [1] Benjamin Liedblad, “Reading Barcodes from an Image”, 25 March 2004 < http://www.codeproject.com/KB/graphics/barcodeImaging.aspx> [2] http://www.emgu.com 54 PHỤ LỤC Các đoạn code sử dụng chương trình - Code lấy ảnh từ webcam chuyển sang dạng byte using Emgu.CV; using Emgu.Util; using Emgu.CV.Structure; using Emgu.CV.CvEnum; Capture capture = new Capture(1); //chup hinh Image nextFrame = capture.QueryFrame(); - Code chuyển sang ảnh nhị phân Byte band = 125; for (int counter = 0; counter1 < rgbValues1.Length; counter++) { if (rgbValues1[counter1] >= band) { rgbValues1[counter1] = 255; } else { rgbValues1[counter1] = 0; } } - Code tính diện tích vạch for (int counter1 = 0; counter1 < rgbValues1.Length; counter1 ++) { if (rgbValues1[counter1] = 0) { b = b + 1; } else { rgbValues1[counter1] = 0; 55 b = b; } } - Code so sánh xuất giá trị vạch if (b1 > 1900) d1 = 9; else if (b1 < 250) d1 = 0; else if (b1 > 250 & b1 < 500) d1 = 1; else if (b1 > 550 & b1 < 750) d1 = 2; else if (b1 > 750 & b1 < 950) d1 = 3; else if (b1 > 950 & b1 < 1100) d1 = 4; else if (b1 > 1100 & b1 < 1350) d1 = 5; else if (b1 > 1350 & b1 < 1550) d1 = 6; else if (b1 > 1600 & b1 < 1850) d1 = 7; else d1 = 8; - Code kết nối với sở liệu using System.Data.OleDb; string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Database.accdb;"; OleDbConnection conn = new OleDbConnection(connectionString); conn.Open(); OleDbCommand cmd = new OleDbCommand("select * from Person where ID='" + ID + "'", conn); OleDbDataReader reader = cmd.ExecuteReader(); if(reader.HasRows) while (reader.Read()) { txtName.Text = (string)reader["FullName"]; 56 txtEmail.Text = (string)reader["Email"]; txtcha.Text = (string)reader["cha"]; //dateTimePicker1.Value = (DateTime)reader["DOB"]; txtDOB.Text = (string)reader["DOB"]; //int cp = (int) reader["CP"]; //txtCP.Text = cp.ToString(); txtMSSV.Text = (string)reader["MSSV"]; txtDTB.Text = (string)reader["DTB"]; } 57 ... điện tử, khoa Cơ khí – Cơng nghệ, trường Đại học Nông Lâm TP.HCM truyền đạt thực cung cấp hành trang hữu ích quý báu để giúp chúng em vững bước tự tin đường nghiệp trước mắt Em xin chân thành... giá trị mã vạch sở liệu khớp chương trình hiển thị thơng tin tương ứng với mã vạch iii MỤC LỤC Trang tựa i Lời cảm ơn .ii Tóm tắt đề tài iii Mục lục... THAM KHẢO 54 PHỤ LỤC 55 v DANH SÁCH CHỮ VIẾT TẮT ASCII – American Standard Code for Information Interchange CCD – Charge Coupled Device CMOS – Complementary Metal-Oxide-Semiconductor