티스토리 뷰

이번에는 캡쳐해서 가져온 이미지를 Tesseract.3.0.2.0 를 이용해서 문자 인식을 할 예정입니다.

 

먼저 해당 Tesseract 비주얼스튜디오에서 설치해보도록 하겠습니다.

 

프로젝트 -> NuGet 패키지 관리에 들어갑니다.

 

찾아보기에서 Tesseract 검색 및 설치를 진행합니다.

 

 

설치완료 후 참조 영역에 아래와 같이 Tesseract 추가되어 있으면 기본적인 설치는 끝났습니다.

 

tessdata.vol1.egg

tessdata.vol2.egg

(알집으로 분할 압축했습니다. 알집으로 압축 풀고 진행해주세요)

 

위 데이터 파일을 다운받아서 진행하고 있는 프로젝트 실행 위치에 복사해줍니다.

저같은경우는 bin -> Debug 상태에서 진행하고 있습니다.

 

 

소스코드로 돌아가서 이제 문자인식을 진행하면 됩니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using Tesseract;
 
 
 
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 form2 = new Form2();
            form2.ShowDialog(this);
 
            System.Drawing.Size mSize = new System.Drawing.Size(mWidth, mHeigt);
            Bitmap image = new Bitmap(mWidth, mHeigt);
            Graphics g = Graphics.FromImage(image);
 
            try
            {
                g.CopyFromScreen(mX, mY, 00, mSize);
            }
            catch (Win32Exception w)
            {
                Console.WriteLine(w.Message);
            }
 
            image = ResizeImage(image, pictureBox1.Width, pictureBox1.Height);
            pictureBox1.Image = image;
 
            Pix pix = PixConverter.ToPix(image);        
 
            var engine = new TesseractEngine(@"./tessdata""eng", EngineMode.Default);
            
            var result = engine.Process(pix);
            result.GetText();
 
            label1.Text = result.GetText();
        }
 
cs

 

문자인식 라이브러리도 아래와같이 초기화 해줍니다.

  var engine = new TesseractEngine(@"./tessdata", "eng", EngineMode.Default);

 

문자인식에 사용할 그림파일을 아래와 같이 Pix 형식으로 불러옵니다.

Pix pix = PixConverter.ToPix(image); 

 

Process 함수가 현재 그림파일의 문자를 인식하는 함수입니다.
  var result = engine.Process(pix);

 

해당 결과같을 아래와 같은 형식으로 받을수 있습니다.
            result.GetText();

 

form 에 label1을 하나 추가하여 결과같을 보여줄수있도록 추가하였습니다.

 

위와같이 결과같이 정상적으로 출력이 된다면 정상적으로 진행한 상태입니다.

 

이번 강좌에서는 NuGet 패키지에서 Tesseract 검색 추가하여

문자 인식하는 함수를 사용해보았습니다.

 

다음강좌에서는 해당 값을 바탕으로

에너지가 일정 이하가 된다면

키보드 이벤트 or 마우스 이벤트를 발생시키는 부분을 진행하겠습니다.

댓글