OPENLAB-IMAGE PROCESSING

FREE KNOWLEDGE FOR ALL PEOPLE
 
Trang ChínhPortalCalendarTrợ giúpTìm kiếmThành viênNhómĐăng kýĐăng Nhập

Share | 
 

 Nhận dạng chữ viết

Go down 
Tác giảThông điệp
jackauk
Thành viên thường
avatar

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

Bài gửiTiêu đề: Nhận dạng chữ viết   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



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



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



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


 

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


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.
Về Đầu Trang Go down
Xem lý lịch thành viên
 
Nhận dạng chữ viết
Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
OPENLAB-IMAGE PROCESSING :: PHÒNG HỌC TẬP :: HỌC TẬP THEO CHUYÊN ĐỀ-
Chuyển đến