Nhận dạng chữ viết

Go down

Nhận dạng chữ viết Empty Nhận dạng chữ viết

Bài gửi by jackauk on Sat Mar 17, 2018 10:36 am

1/ Tài liệu cần thiết
Visual  Studio Express 2015 for Express Edition
OpenCV C#  (Emgu.CV)
2/ Các bước cài đặt
+ Tạo project mới với ngôn ngữ C#

+ Cài đặt  gói Emgu.CV vào trong project bằng Package Manager Console
Bước 1: Cài đặt Extension Nuget vào VS 2015 Express
Nhận dạng chữ viết A110


Bước 2: Mở Package Manager Console. Cửa sổ sẽ thường nằm phía góc dưới của Visual Studio Express
Nhận dạng chữ viết A210


Bước 3: Cài đặt thư viện Emgu.CV vào trong project (tham khảo tại https://www.nuget.org/packages/Emgu.CV/)



Code:
Install-Package Emgu.CV -Version 3.3.0.2824

Nhận dạng chữ viết A310

Sau cùng sẽ có các reference của Emgu.CV trong  danh sách reference của project


 Nhận dạng chữ viết A410

3/ Các bước  thực hiện  lọc dữ liệu

Bước 1: Khai báo các class sẽ dùng và chuẩn bị dữ liệu nhận dạng OCR.

Code:
….
using Emgu.CV;
using Emgu.Util;
using Emgu.CV.UI;
using Emgu.CV.OCR;
using Emgu.CV.Structure;
….
Dữ liệu nhận dạng là những file liệt kê phía dưới lấy từ thư mục chứa thư viện mở rộng Emgu.CV được cài đặt
Nhận dạng chữ viết A510

Bước 2: Khởi tạo engine OCR


// Khai báo toàn cục (global)
Tesseract ocr_engine;  
// Khởi tạo engine
ocr_engine = new Tesseract(@"tesseract", "eng", OcrEngineMode.TesseractLstmCombined);

Bước 3: Nạp ảnh và thực hiện nhận dạng.
Nguồn ảnh được lấy từ ảnh có sẵn trong hệ thống, được chuyển đổi sang ảnh xám (gray 1 kênh 8 bit). Kết quả trả về của engine là một mảng character của engine dạng String.
Code:

 Image<Bgr, Byte> image = new Image<Bgr, byte>(m_pathImageStorage);
                   m_posHigh = (int)(image.Size.Height * posHigh/100);
                   m_posLow = (int)(image.Size.Height * posLow/100);
                   image.ROI = new Rectangle(0, m_posLow, image.Size.Width, m_posHigh - m_posLow);
                   Image<Gray, byte> gray = image.Convert<Gray, Byte>();
                   image.ROI = Rectangle.Empty;

                   ocr_engine.SetImage(gray);
                   ocr_engine.Recognize();

                   Tesseract.Character[] ch = ocr_engine.GetCharacters();
                   
                   foreach (Tesseract.Character c in ch.ToList())
                   {
                       textReg += c.Text;
                   }

_________________
Em gọi ta khi mùa trăng đã dứt
Nắng nhạt phai, còn thanh xuân qua rồi.
Dĩ vãng êm đềm xin trôi, trôi mãi
Để ta lớn lên, bước về trời xa

Nếu một mai quay về còn gặp lại
Nửa đời thương nhớ, nửa đời vấn vương
Hoa kia xin cài vào miền quá khứ
Để nồng nàn góc phố ta gặp nhau.
jackauk
jackauk
Thành viên thường

Tổng số bài gửi : 61
Điểm danh tiếng : 2
Join date : 16/08/2015
Age : 31
Đến từ : TP Hồ Chí Minh

Về Đầu Trang Go down

Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết