Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 79 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
79
Dung lượng
4,9 MB
Nội dung
VIỆN ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN DƯƠNG THỊ THU NGHIÊN CỨU KỸ THUẬT XỬ LÝ CHỮ SỐ QUA HÌNH ẢNH VÀ XÂY DỰNG ỨNG DỤNG NẠP THẺ ĐIỆN THOẠI TRÊN NỀN WINDOWS PHONE Chuyên ngành: Công nghệ thông tin ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Hà Nội - Năm 2015 NGHIÊN CỨU KỸ THUẬT XỬ LÝ CHỮ SỐ QUA HÌNH ẢNH VÀ XÂY DỰNG ỨNG DỤNG NẠP THẺ ĐIỆN THOẠI TRÊN NỀN WINDOW PHONE Niên khoán 2011 - 2015 VIỆN ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN DƯƠNG THỊ THU NGHIÊN CỨU KỸ THUẬT XỬ LÝ CHỮ SỐ QUA HÌNH ẢNH VÀ XÂY DỰNG ỨNG DỤNG NẠP THẺ ĐIỆN THOẠI TRÊN NỀN WINDOWS PHONE Chuyên ngành: Công nghệ thông tin Giáo viên hướng dẫn: Th.S Lê Hữu Dũng ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Hà Nội - Năm 2015 LỜI MỞ ĐẦU Lời chúng em xin gửi đến thầy Lê Hữu Dũng, người trực tiếp hướng dẫn em suốt trình thực đồ án Những nhận xét, đánh giá chia sẻ kinh nghiệm làm việc thầy thông tin vơ hữu ích cho việc hồn thành dự án em Em xin trân trọng cảm ơn thầy, chúc thầy gia đình ln ln mạnh khỏe đạt thành công sống Bên cạnh em xin cảm ơn đặc biệt gửi lời cảm ơn đến thầy cô khoa Công nghệ Thông tin, Viện Đại học Mở Hà Nội không trực tiếp hướng dẫn em trình làm đồ án, kiến thức thầy cô truyền thụ giúp em nhiều việc hoàn thành đồ án Cụ thể: - Thầy Trương Tiến Tùng – Nhờ gợi ý ban đầu thầy mà chúng em lên ý tưởng đề tài thực hóa ý tưởng - Thầy Trần Tiến Dũng – Nhờ có dạy thầy dự án Cơng nghệ Thơng tin, em xếp cơng việc hợp lý để hồn thành đồ án cách tốt - Thầy Thái Thanh Tùng, cô Trịnh Thị Xuân - Những nhận xét, đánh giá thầy, cô buổi báo cáo tiến độ giúp đỡ cho em nhiều việc nhìn nhận lại chương trình, từ xây dựng ứng dụng cách tốt thực tiễn Em xin kính chúc thầy mạnh khỏe, ln ln người lái đị ân cần dìu dắt hệ FITHOU trưởng thành Cuối xin gửi lời cảm ơn sâu sắc tới bố mẹ, gia đình tạo điều kiện tốt để chun tâm hồn thành đồ án Do thời gian làm đồ án ngắn nên có nhiều sai sót mong Thầy (Cơ) giúp đỡ góp ý để đồ án hoàn thiện Em xin chân thành cảm ơn! MỤC LỤC LỜI MỞ ĐẦU TÓM TẮT ĐỒ ÁN DANH MỤC BẢNG DANH MỤC HÌNH VẼ Chương GIỚI THIỆU 1.1 Tên đề tài 1.2 Mơ tả tốn Chương KỸ THUẬT XỬ LÝ CHỮ SỐ QUA HÌNH ẢNH 2.1 2.1 Kiến thức chung xử lý ảnh 2.1.1 Giới thiệu chung 2.1.2 Xử lý chữ số qua hình ảnh 2.2.3 OpenCV Thư viện 11 2.3.4.3 Microsoft OCR Library Sample 17 Chương 20 XÂY DỰNG ỨNG DỤNG NẠP THẺ ĐIỆN THOẠI TRÊN NỀN WINDOWS PHONE 20 3.1 Tổng quan Windows Phone 20 3.2 So sánh hệ điều hành Android, Windows Phone, IOS , BlackBerry OS, Symbian 25 3.3 Hạn chế Windows Phone 28 3.4 Kiến trúc phần cứng phần mềm Windows Phone 31 3.5 Cấu trúc Windows Phone Project 34 3.6 Yêu cầu vòng đời ứng dụng Windows Phone 40 3.7 Cài đặt cơng cụ để lập trình Windows Phone app 8.0 43 3.8 Các bước tạo Windows Phone App Visual Studio 2013 44 Chương 50 CÁC BƯỚC XỬ LÍ BÀI TỐN 50 Sơ đồ phân rã chức luồng xử lí 50 4.5 Nâng cấp phần mềm 52 Chương 53 CHƯƠNG TRÌNH DEMO 53 5.1 53 5.1 Giao diện chương trình 53 5.2 Các phương thức xử lí kiện 55 KẾT LUẬN 68 TÀI LIỆU THAM KHẢO 69 TÓM TẮT ĐỒ ÁN - Họ tên: Dương Thị Thu - Chuyên ngành: Công nghệ Thơng tin Khóa: 11 - Cán hướng dẫn: ThS Lê Hữu Dũng - Tên đề tài: Nghiên cứu kỹ thuật xử lý chữ số qua hình ảnh xây dựng ứng dụng nạp thẻ điện thoại Windows Phone Tóm tắt: Nội dung đồ án hướng đến việc nghiên cứu lý thuyết kỹ thuật xử lý chữ số qua hình ảnh cách xây dựng ứng dụng việc xử lý chữ số thông qua thiết bị cầm tay thông minh điện thoại di động máy tính bảng Nhiều cơng nghệ kiến thức chun sâu hệ điều hành Window Phone lập trình Window Phone sử dụng để hoàn thiện đồ án cách xây dựng app, Microsoft OCR cho Windows Runtime để trích xuất văn … Các vấn đề nghiên cứu chi tiết đồ án kết nhận dạng hình ảnh qua việc xây nạp thẻ tự động VIỆN ĐẠI HỌC MỞ HÀ NỘI KHOA CƠNG NGHỆ THƠNG TIN CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc Hà Nội, ngày 20 tháng năm 2015 NHIỆM VỤ CỦA ĐỒ ÁN TỐT NGHIỆP Họ tên: Dương Thị Thu Ngày sinh: 20/11/1992 Chuyên ngành: Công nghệ thơng tin Tên đề tài Giới tính: Nữ Nơi sinh: Ninh Bình Nghiên cứu kỹ thuật xử lý chữ số qua hình ảnh xây dựng ứng dụng nạp thẻ điện thoại Windows phone NHIỆM VỤ VÀ NỘI DUNG Nội dung đồ án hướng đến việc nghiên cứu lý thuyết kỹ thuật xử lý chữ số qua hình ảnh cách xây dựng ứng dụng việc xử lý chữ số thông qua thiết bị cầm tay thông minh điện thoại di động Xây dựng ứng dụng nạp thẻ điện thoại tự động hệ điều hành Windows Phone NGÀY GIAO NHỆM VỤ: 04 - 02 - 2015 NGÀY HOÀN THÀNH NHIỆM VỤ: 30- 05 - 2015 GIẢNG VIÊN HƯỚNG DẪN: GIẢNG VIÊN HƯỚNG DẪN Th.S Lê Hữu Dũng KHOA CÔNG NGHỆ THƠNG TIN DANH MỤC BẢNG Bảng 1.1 Độ xác OCR số ngôn ngữ 16 Bảng 1.2 lớp WindowPreview.Media.Ocr 18 Bảng 1.3 kết Optical Character Recognition (OCR) 19 Bảng 1.3 Chức số file thư mục: 35 DANH MỤC HÌNH VẼ Hình 1.1 Lưu đồ thuật toán Hình 2.1 Các bước xử lý ảnh Hình 2.2 Mơ hình nhận dạng chữ số Hình 2.3 Chuẩn hóa ảnh Hình 2.4 Chuẩn hóa vùng liên thơng Hình 2.19 Quá trình thực OCR 13 Hình 3.1 Window phones 22 Hình 3.2 Windows Phone 23 Hình 3.3 Phiên Windows Phone 8.1 24 Hình 3.4 Cấu trúc Project Windows Phone 34 Hình 3.5 WMAppMainfest.xml 36 Hình 3.6 Chọn chương trình chạy 37 Hình 3.7 38 Hình 3.8 39 Hình 3.9 40 Hình 3.10 Vịng đời ứng dụng Window Phone 8.0 41 Hình 3.11 Vịng đời ứng dụng Window Phone 8.1 42 Hình 3.12 44 Hình 3.13 45 Hình 3.14 46 Hình 2.15 47 Hình 2.16 47 Hình 2.17 48 Hình 2.18 49 Hình 4.1 Sơ đồ phân rã chức 50 Hình 4.2 Sơ đồ luồng chức 52 hình 4.1 53 Hình 4.2 54 Hình 4.2 Giao diện chương trình 58 55 5.2 Các phương thức xử lí kiện • Xử lí camera Bắt đầu chọn camera async private void Start_Capture_Preview_Click(object sender, RoutedEventArgs e) { captureManager = new MediaCapture(); //Define MediaCapture object await captureManager.InitializeAsync(); //Initialize MediaCap- ture and capturePreview.Source = captureManager; //Start preiving on CaptureElement await captureManager.StartPreviewAsync(); //Start camera capturing } Cách chia Camera public partial class Camera : PhoneApplicationPage { BitmapImage bi = new BitmapImage(); private Image img; public Camera() { InitializeComponent(); } void pct_Completed(object sender, PhotoResult e) { 56 // BitmapImage bi = new BitmapImage(); if (e.Error == null && e.TaskResult==TaskResult.OK) { bi.SetSource(e.ChosenPhoto); // ImgPrev.Source = bi; } else { MessageBox.Show("Failed to open an Image."); } } private void btnOpen_Click(object sender, RoutedEventArgs e) { 57 //khoi tao doi tuong PhotoChooserTask Microsoft.Phone.Tasks.PhotoChooserTask pct = new PhotoChooserTask(); //thiet lap cac thuoc tinh cho doi tuong PhotoChooserTask pct.Completed += pct_Completed; pct.PixelHeight = 50;// chieu cao cua khung hien thi anh pct.PixelWidth = 200;// chieu rong cua khung hien thi anh pct.ShowCamera = true;// cho phep hien thi camerade soi anh //hien thi doi tuong PhotoChooserTask pct.Show(); // BitmapImage bmp = new BitmapImage(); ImgPrev.Source = bi ; // bmp = bi; 58 Giao diện chương trình Hình 4.2 Giao diện chương trình 59 Chụp ảnh Nhận dạng ảnh thư viện OCR Bước 1: Trong page constructor, tạo khởi tạo instance OcrEngine Và tạo biến để lưu trữ chiều rộng chiều cao hình ảnh Bước 2: Tải hình ảnh bạn, chuyển đổi để WriteableBitmap để có điểm ảnh chiều cao chiều rộng Bước 3: Kiểm tra kích thước ảnh nên > 40 * 40 pixel 2600 || bitmap.PixelWidth < 40 || bitmap.PixelWidth > 2600) { ImageText.Text = "Image size is not supported." + Environment.NewLine + "Loaded image size is " + bitmap.PixelWidth + "x" + bitmap.PixelHeight + "." + Environment.NewLine + "Supported image dimensions are between 40 and 2600 pixels."; //ImageText.Style = (Style)Application.Current.Resources["RedT extStyle"]; return; } // This main API call to extract text from image var ocrResult = await ocrEngine.RecognizeAsync((uint)bitmap.Pixe lHeight, (uint)bitmap.PixelWidth, bitmap.PixelBuffer.ToArray()); // OCR result does not contain any lines, no text was recognized if (ocrResult.Lines != null) { 62 // Used for text overlay // Prepare scale transform for words since image is not displayed i n original format var scaleTrasform = new ScaleTransform { CenterX = 0, CenterY = 0, ScaleX = PreviewImage.ActualWidth / bitmap.PixelWidth, ScaleY = PreviewImage.ActualHeight / bitmap.PixelHeight, }; if (ocrResult.TextAngle != null) { PreviewImage.RenderTransform = new RotateTransform { Angle = (double)ocrResult.TextAngle, CenterX = PreviewImage.ActualWidth / 2, CenterY = PreviewImage.ActualHeight / }; } string extractedText = ""; // Iterate over recognized lines of text foreach (var line in ocrResult.Lines) { // Iterate over words in line foreach (var word in line.Words) { 63 var originalRect = new Rect(word.Left, word.Top, word.Wi dth, word.Height); var overlayRect = scaleTrasform.TransformBounds(original Rect); var wordTextBlock = new TextBlock() { Height = overlayRect.Height, Width = overlayRect.Width, FontSize = overlayRect.Height * 0.8, Text = word.Text, }; // Define position, background, etc var border = new Border() { Margin = new Thickness(overlayRect.Left, overlayRect.Top, 0, 0), Height = overlayRect.Height, Width = overlayRect.Width, Background=new SolidColorBrush(Colors.Orange),Opacity=0.5,HorizontalAlig nment=HorizontalAlignment.Left,VerticalAlignment=VerticalAlignment.T op, Child = wordTextBlock, }; OverlayTextButton.IsEnabled = true; // Put the filled textblock in the results grid TextOverlay.Children.Add(border); 64 extractedText += word.Text + " "; } extractedText += Environment.NewLine; } ImageText.Text = extractedText; } else { ImageText.Text = "No text."; } } private void OverlayText_Click(object sender, RoutedEventArgs e) { if(TextOverlay.Visibility==Visibility.Visible) { TextOverlay.Visibility = Visibility.Collapsed; } else { TextOverlay.Visibility = Visibility.Visible; } } } 65 Trim Space Trên mã thẻ có khoảng trắng nhận dạng hệ thống nhận dạng khoảng trắng Để khắc phục vấn đề này, em xây dựng hàm cắt khoảng trắng Code: //phuong thuc xoa khoang trang cua day so ma so the sau nhan dang public void xoakhoangtrang(String str) { // string s = txtExtracted.Text.Trim(); while (str.IndexOf(" ") >= 0) //tim chuoi vi tri co khoang tro len str = str.Replace(" ", ""); //sau thay the bang khoang txtExtracted.Text ="*100*" +str + "#"; } Để thuận tiện cho người dùng thao tác nhất, em chèn thêm cú pháp nạp thẻ điện thoại vào kết nhận dang Code: txtExtracted.Text ="*100*" +str + "#"; 66 Chỉnh sửa Đơi số lý mà hệ thống không nhận dạng số mã số, người dùng sửa thêm cú pháp khác, người dùng thao tác sửa lại text nhận dạng Code: private void Edit_Click(object sender, RoutedEventArgs e) { string str = txtExtracted.Text; txtExtracted.Text = str; MessageBox.Show(txtExtracted.Text); } Gọi đến tổng đài Khi nhận dạng xong cú pháp, kết người dùng gọi điện đến tổng đài để nạp thẻ Nhưng Window Phone không hỗ trợ mã USSD (Unstructured Supplementary Service Data) nên thực gọi tự động Thay thực gọi tự động em xây dựng hàm coppy phần nhận dạng sang phần nhật kí gọi thực cc đến tổng đài bình thường Code: private void Call_Click(object sender, RoutedEventArgs e) { // chua ho tro dich vu USSD cho Windows Phone MessageBox.Show("USSD service not support for Windows 67 Phone!"); } private void Edit_Click(object sender, RoutedEventArgs e) { string str = txtExtracted.Text; txtExtracted.Text = str; MessageBox.Show(txtExtracted.Text); } private void Coppy_Click(object sender, RoutedEventArgs e) { txtExtracted.SelectAll(); } 68 KẾT LUẬN Chương trình sử dụng thư viện OCR để nhận dạng dãy số mã nạp thẻ OCR nhận dạng tương đối xác kí tự số Nên này, chưa sử dụng tiền xử lí ảnh Hiện mã USSD(Unstructured Supplementary Service Data) không hỗ trợ cho Windows Phone Application Trong tương lai USSD hỗ trợ thực gọi nạp thẻ Hướng phát triển: hoàn thiện nâng chương trình với chức tiền xử lí ảnh tốt hơn,… 69 TÀI LIỆU THAM KHẢO Tiếng việt: TS Đỗ Thanh Tồn, Phạm Việt Bình, Xử lý ảnh, Nhà xuất Đại học Thái Nguyên Nguyễn Quang Hoan (2006), Xử lý ảnh, Giáo trình, Học viện Cơng nghệ Bưu Viễn thơng Tiếng anh: [1] Mohamed Cheriet, Nawwaf Kharma, Cheng-Lin Liu And Ching Y Suen, “Character Recognition Systems: A Guide for Students and Practioners”, N Y.: John Wiley & Sons, 2007 [2] Najman, L.: Using Mathematical Morphology for Document Skew Estimation In: Proc of SPIE Conf on Document Recognition and Retrieval XI, San Jose, California, USA (2004) 182–191 R Smith, D Antonova, D Lee, “Adapting the Tesseract open source OCR engine for multilingual OCR”, in Proceedings of the International Workshop on Multilingual OCR, 2009