Hôm nay, mình xin hướng dẫn các bạn sử dụng thư viện OCR để lấy chữ trong ảnh trong bộ thư viện Emgu CV, Cái này thường được sử dụng để các bạn đọc captcha từ các trang web....


- Đầu tiên mình xin giới thiệu Emgu CV là một thư viện dùng để xử lý hình ảnh: Nhận dạng khuôn mặt, mũi, mắt, xử lý hình ảnh ...(Detect Face..)

Bài hướng dẫn mình đang sử dụng Emgu CV 2.4, phiên bản hiện tại đang là phiên bản 3.0, các bạn có thể tải bộ thư viện trang đường dẫn:

DOWNLOAD SOURCE CODE

Để sử dụng thư viện Emgu CV rất khó, nên mình đã quay video lại để các bạn tiện tham khảo:
VIDEO HƯỚNG DẪN

Các bước để thực hiện tiện ích trên.

- Trong ví dụ trên sử dụng : 1 picturebox, 1 Richtextbox, 1 Timer1 button.
- Đầu tiên ta import thư viện vào
Imports Emgu.CV
Imports Emgu.Util
Imports Emgu.CV.OCR
Imports Emgu.CV.Structure

- Khai báo 1 Tesseract, Bitmap và Graphics
Dim OCRz As Tesseract = New Tesseract("tessdata", "eng", Tesseract.OcrEngineMode.OEM_DEFAULT)
    Dim pic As Bitmap = New Bitmap(270, 100)
    Dim gfx As Graphics = Graphics.FromImage(pic)

- Code cho timer1 sự kiện tick()
gfx.CopyFromScreen(New Point(Me.Location.X + PictureBox1.Location.X + 4, Me.Location.Y + PictureBox1.Location.Y + 30), New Point(0, 0), pic.Size)
        PictureBox1.Image = pic
        PictureBox1.Image = Nothing

- Cuối cùng là viết sự kiện cho nút Scan:
 OCRz.Recognize(New Image(Of Bgr, Byte)(pic))
        RichTextBox1.Text = OCRz.GetText

Chúc các bạn thành công với thủ thuật đơn giản này.