tesseract-ocr 0.0.4 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +54 -16
- data/bin/tesseract-train.rb +63 -0
- data/examples/nerdz-captcha-breaker/break.rb +18 -10
- data/examples/nerdz-captcha-breaker/captchas/001.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/002.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/003.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/004.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/005.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/006.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/007.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/008.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/009.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/010.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/011.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/012.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/013.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/014.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/015.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/016.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/017.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/018.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/019.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/020.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/021.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/022.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/023.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/024.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/025.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/026.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/027.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/028.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/029.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/030.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/031.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/032.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/033.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/034.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/035.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/036.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/037.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/038.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/039.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/040.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/041.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/042.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/043.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/044.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/045.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/046.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/047.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/048.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/049.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/050.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/051.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/052.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/053.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/054.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/055.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/056.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/057.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/058.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/059.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/060.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/061.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/062.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/063.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/064.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/065.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/066.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/067.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/068.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/069.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/070.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/071.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/072.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/073.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/074.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/075.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/076.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/077.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/078.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/079.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/080.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/081.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/082.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/083.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/084.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/085.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/086.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/087.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/088.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/089.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/090.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/091.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/092.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/093.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/094.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/095.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/096.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/097.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/098.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/099.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/100.png +0 -0
- data/examples/nerdz-captcha-breaker/captchas/captchas.txt +100 -0
- data/examples/nerdz-captcha-breaker/tessdata/generate.rb +21 -0
- data/examples/nerdz-captcha-breaker/tessdata/lol.box +600 -0
- data/examples/nerdz-captcha-breaker/tessdata/lol.tif +0 -0
- data/examples/nerdz-captcha-breaker/tessdata/lol.traineddata +0 -0
- data/examples/nerdz-captcha-breaker/test.rb +11 -0
- data/lib/tesseract/engine.rb +19 -2
- data/lib/tesseract/extensions.rb +0 -1
- data/lib/tesseract/version.rb +1 -1
- data/test/jsmj.png +0 -0
- data/test/tesseract_spec.rb +9 -0
- metadata +122 -14
- data/examples/nerdz-captcha-breaker/lol.gd-giant.exp.box +0 -112
- data/examples/nerdz-captcha-breaker/lol.gd-giant.exp.tif +0 -0
Binary file
|
Binary file
|
@@ -0,0 +1,11 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
expected = File.read('captchas/captchas.txt').lines.to_a
|
4
|
+
|
5
|
+
`./break.rb captchas/*.png`.lines.each_with_index {|line, index|
|
6
|
+
whole, path, output = line.match(/^(.*?): (.*?)$/).to_a
|
7
|
+
|
8
|
+
unless output == expected[index].chomp
|
9
|
+
puts "#{path}: expected #{expected[index].chomp} but got #{output}"
|
10
|
+
end
|
11
|
+
}
|
data/lib/tesseract/engine.rb
CHANGED
@@ -178,6 +178,23 @@ class Engine
|
|
178
178
|
_iterator.__send__ "each_#{level}", &block
|
179
179
|
end
|
180
180
|
|
181
|
+
namedic :image, :x, :y, :width, :height,
|
182
|
+
:optional => 0 .. -1,
|
183
|
+
:alias => { :w => :width, :h => :height }
|
184
|
+
define_method "each_#{level}_for" do |image = nil, x = nil, y = nil, width = nil, height = nil, &block|
|
185
|
+
self.image = image if image
|
186
|
+
select x, y, width, height
|
187
|
+
|
188
|
+
__send__ "each_#{level}", &block
|
189
|
+
end
|
190
|
+
|
191
|
+
namedic :x, :y, :width, :height,
|
192
|
+
:optional => 0 .. -1,
|
193
|
+
:alias => { :w => :width, :h => :height }
|
194
|
+
define_method "each_#{level}_at" do |x = nil, y = nil, width = nil, height = nil, &block|
|
195
|
+
__send__ "each_#{level}_for", nil, x, y, width, height, &block
|
196
|
+
end
|
197
|
+
|
181
198
|
define_method "#{level}s" do
|
182
199
|
_iterator.__send__ "#{level}s"
|
183
200
|
end
|
@@ -189,14 +206,14 @@ class Engine
|
|
189
206
|
self.image = image if image
|
190
207
|
select x, y, width, height
|
191
208
|
|
192
|
-
__send__
|
209
|
+
__send__ "#{level}s"
|
193
210
|
end
|
194
211
|
|
195
212
|
namedic :x, :y, :width, :height,
|
196
213
|
:optional => 0 .. -1,
|
197
214
|
:alias => { :w => :width, :h => :height }
|
198
215
|
define_method "#{level}s_at" do |x = nil, y = nil, width = nil, height = nil|
|
199
|
-
__send__
|
216
|
+
__send__ "#{level}s_for", nil, x, y, width, height
|
200
217
|
end
|
201
218
|
}
|
202
219
|
|
data/lib/tesseract/extensions.rb
CHANGED
data/lib/tesseract/version.rb
CHANGED
data/test/jsmj.png
ADDED
Binary file
|
data/test/tesseract_spec.rb
CHANGED
@@ -78,6 +78,15 @@ describe Tesseract::Engine do
|
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
81
|
+
describe '#page_segmentation_mode' do
|
82
|
+
it 'sets it correctly' do
|
83
|
+
engine.with {|e|
|
84
|
+
e.page_segmentation_mode = 8
|
85
|
+
e.whitelist = [*'a'..'z', *'A'..'Z', *0..9, " ."].join
|
86
|
+
}.text_for('jsmj.png').strip.should == 'JSmj'
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
81
90
|
describe '#blocks' do
|
82
91
|
it 'works properly with first image' do
|
83
92
|
engine.blocks_for('first.png').first.to_s.should == "ABC\n"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tesseract-ocr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-12-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: namedic
|
16
|
-
requirement: &
|
16
|
+
requirement: &20715740 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *20715740
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: memoized
|
27
|
-
requirement: &
|
27
|
+
requirement: &20730960 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *20730960
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: iso-639
|
38
|
-
requirement: &
|
38
|
+
requirement: &20729480 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *20729480
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: ffi-extra
|
49
|
-
requirement: &
|
49
|
+
requirement: &20727420 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *20727420
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: ffi-inliner
|
60
|
-
requirement: &
|
60
|
+
requirement: &20726120 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,20 +65,126 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *20726120
|
69
69
|
description:
|
70
70
|
email: meh@paranoici.org
|
71
71
|
executables:
|
72
|
+
- tesseract-train.rb
|
72
73
|
- tesseract.rb
|
73
74
|
extensions: []
|
74
75
|
extra_rdoc_files: []
|
75
76
|
files:
|
76
77
|
- README.md
|
77
78
|
- Rakefile
|
79
|
+
- bin/tesseract-train.rb
|
78
80
|
- bin/tesseract.rb
|
79
81
|
- examples/nerdz-captcha-breaker/break.rb
|
80
|
-
- examples/nerdz-captcha-breaker/
|
81
|
-
- examples/nerdz-captcha-breaker/
|
82
|
+
- examples/nerdz-captcha-breaker/captchas/001.png
|
83
|
+
- examples/nerdz-captcha-breaker/captchas/002.png
|
84
|
+
- examples/nerdz-captcha-breaker/captchas/003.png
|
85
|
+
- examples/nerdz-captcha-breaker/captchas/004.png
|
86
|
+
- examples/nerdz-captcha-breaker/captchas/005.png
|
87
|
+
- examples/nerdz-captcha-breaker/captchas/006.png
|
88
|
+
- examples/nerdz-captcha-breaker/captchas/007.png
|
89
|
+
- examples/nerdz-captcha-breaker/captchas/008.png
|
90
|
+
- examples/nerdz-captcha-breaker/captchas/009.png
|
91
|
+
- examples/nerdz-captcha-breaker/captchas/010.png
|
92
|
+
- examples/nerdz-captcha-breaker/captchas/011.png
|
93
|
+
- examples/nerdz-captcha-breaker/captchas/012.png
|
94
|
+
- examples/nerdz-captcha-breaker/captchas/013.png
|
95
|
+
- examples/nerdz-captcha-breaker/captchas/014.png
|
96
|
+
- examples/nerdz-captcha-breaker/captchas/015.png
|
97
|
+
- examples/nerdz-captcha-breaker/captchas/016.png
|
98
|
+
- examples/nerdz-captcha-breaker/captchas/017.png
|
99
|
+
- examples/nerdz-captcha-breaker/captchas/018.png
|
100
|
+
- examples/nerdz-captcha-breaker/captchas/019.png
|
101
|
+
- examples/nerdz-captcha-breaker/captchas/020.png
|
102
|
+
- examples/nerdz-captcha-breaker/captchas/021.png
|
103
|
+
- examples/nerdz-captcha-breaker/captchas/022.png
|
104
|
+
- examples/nerdz-captcha-breaker/captchas/023.png
|
105
|
+
- examples/nerdz-captcha-breaker/captchas/024.png
|
106
|
+
- examples/nerdz-captcha-breaker/captchas/025.png
|
107
|
+
- examples/nerdz-captcha-breaker/captchas/026.png
|
108
|
+
- examples/nerdz-captcha-breaker/captchas/027.png
|
109
|
+
- examples/nerdz-captcha-breaker/captchas/028.png
|
110
|
+
- examples/nerdz-captcha-breaker/captchas/029.png
|
111
|
+
- examples/nerdz-captcha-breaker/captchas/030.png
|
112
|
+
- examples/nerdz-captcha-breaker/captchas/031.png
|
113
|
+
- examples/nerdz-captcha-breaker/captchas/032.png
|
114
|
+
- examples/nerdz-captcha-breaker/captchas/033.png
|
115
|
+
- examples/nerdz-captcha-breaker/captchas/034.png
|
116
|
+
- examples/nerdz-captcha-breaker/captchas/035.png
|
117
|
+
- examples/nerdz-captcha-breaker/captchas/036.png
|
118
|
+
- examples/nerdz-captcha-breaker/captchas/037.png
|
119
|
+
- examples/nerdz-captcha-breaker/captchas/038.png
|
120
|
+
- examples/nerdz-captcha-breaker/captchas/039.png
|
121
|
+
- examples/nerdz-captcha-breaker/captchas/040.png
|
122
|
+
- examples/nerdz-captcha-breaker/captchas/041.png
|
123
|
+
- examples/nerdz-captcha-breaker/captchas/042.png
|
124
|
+
- examples/nerdz-captcha-breaker/captchas/043.png
|
125
|
+
- examples/nerdz-captcha-breaker/captchas/044.png
|
126
|
+
- examples/nerdz-captcha-breaker/captchas/045.png
|
127
|
+
- examples/nerdz-captcha-breaker/captchas/046.png
|
128
|
+
- examples/nerdz-captcha-breaker/captchas/047.png
|
129
|
+
- examples/nerdz-captcha-breaker/captchas/048.png
|
130
|
+
- examples/nerdz-captcha-breaker/captchas/049.png
|
131
|
+
- examples/nerdz-captcha-breaker/captchas/050.png
|
132
|
+
- examples/nerdz-captcha-breaker/captchas/051.png
|
133
|
+
- examples/nerdz-captcha-breaker/captchas/052.png
|
134
|
+
- examples/nerdz-captcha-breaker/captchas/053.png
|
135
|
+
- examples/nerdz-captcha-breaker/captchas/054.png
|
136
|
+
- examples/nerdz-captcha-breaker/captchas/055.png
|
137
|
+
- examples/nerdz-captcha-breaker/captchas/056.png
|
138
|
+
- examples/nerdz-captcha-breaker/captchas/057.png
|
139
|
+
- examples/nerdz-captcha-breaker/captchas/058.png
|
140
|
+
- examples/nerdz-captcha-breaker/captchas/059.png
|
141
|
+
- examples/nerdz-captcha-breaker/captchas/060.png
|
142
|
+
- examples/nerdz-captcha-breaker/captchas/061.png
|
143
|
+
- examples/nerdz-captcha-breaker/captchas/062.png
|
144
|
+
- examples/nerdz-captcha-breaker/captchas/063.png
|
145
|
+
- examples/nerdz-captcha-breaker/captchas/064.png
|
146
|
+
- examples/nerdz-captcha-breaker/captchas/065.png
|
147
|
+
- examples/nerdz-captcha-breaker/captchas/066.png
|
148
|
+
- examples/nerdz-captcha-breaker/captchas/067.png
|
149
|
+
- examples/nerdz-captcha-breaker/captchas/068.png
|
150
|
+
- examples/nerdz-captcha-breaker/captchas/069.png
|
151
|
+
- examples/nerdz-captcha-breaker/captchas/070.png
|
152
|
+
- examples/nerdz-captcha-breaker/captchas/071.png
|
153
|
+
- examples/nerdz-captcha-breaker/captchas/072.png
|
154
|
+
- examples/nerdz-captcha-breaker/captchas/073.png
|
155
|
+
- examples/nerdz-captcha-breaker/captchas/074.png
|
156
|
+
- examples/nerdz-captcha-breaker/captchas/075.png
|
157
|
+
- examples/nerdz-captcha-breaker/captchas/076.png
|
158
|
+
- examples/nerdz-captcha-breaker/captchas/077.png
|
159
|
+
- examples/nerdz-captcha-breaker/captchas/078.png
|
160
|
+
- examples/nerdz-captcha-breaker/captchas/079.png
|
161
|
+
- examples/nerdz-captcha-breaker/captchas/080.png
|
162
|
+
- examples/nerdz-captcha-breaker/captchas/081.png
|
163
|
+
- examples/nerdz-captcha-breaker/captchas/082.png
|
164
|
+
- examples/nerdz-captcha-breaker/captchas/083.png
|
165
|
+
- examples/nerdz-captcha-breaker/captchas/084.png
|
166
|
+
- examples/nerdz-captcha-breaker/captchas/085.png
|
167
|
+
- examples/nerdz-captcha-breaker/captchas/086.png
|
168
|
+
- examples/nerdz-captcha-breaker/captchas/087.png
|
169
|
+
- examples/nerdz-captcha-breaker/captchas/088.png
|
170
|
+
- examples/nerdz-captcha-breaker/captchas/089.png
|
171
|
+
- examples/nerdz-captcha-breaker/captchas/090.png
|
172
|
+
- examples/nerdz-captcha-breaker/captchas/091.png
|
173
|
+
- examples/nerdz-captcha-breaker/captchas/092.png
|
174
|
+
- examples/nerdz-captcha-breaker/captchas/093.png
|
175
|
+
- examples/nerdz-captcha-breaker/captchas/094.png
|
176
|
+
- examples/nerdz-captcha-breaker/captchas/095.png
|
177
|
+
- examples/nerdz-captcha-breaker/captchas/096.png
|
178
|
+
- examples/nerdz-captcha-breaker/captchas/097.png
|
179
|
+
- examples/nerdz-captcha-breaker/captchas/098.png
|
180
|
+
- examples/nerdz-captcha-breaker/captchas/099.png
|
181
|
+
- examples/nerdz-captcha-breaker/captchas/100.png
|
182
|
+
- examples/nerdz-captcha-breaker/captchas/captchas.txt
|
183
|
+
- examples/nerdz-captcha-breaker/tessdata/generate.rb
|
184
|
+
- examples/nerdz-captcha-breaker/tessdata/lol.box
|
185
|
+
- examples/nerdz-captcha-breaker/tessdata/lol.tif
|
186
|
+
- examples/nerdz-captcha-breaker/tessdata/lol.traineddata
|
187
|
+
- examples/nerdz-captcha-breaker/test.rb
|
82
188
|
- lib/tesseract-ocr.rb
|
83
189
|
- lib/tesseract.rb
|
84
190
|
- lib/tesseract/api.rb
|
@@ -99,6 +205,7 @@ files:
|
|
99
205
|
- lib/tesseract/version.rb
|
100
206
|
- tesseract-ocr.gemspec
|
101
207
|
- test/first.png
|
208
|
+
- test/jsmj.png
|
102
209
|
- test/second.png
|
103
210
|
- test/tesseract_bench.rb
|
104
211
|
- test/tesseract_spec.rb
|
@@ -130,6 +237,7 @@ specification_version: 3
|
|
130
237
|
summary: A wrapper library to the tesseract-ocr API.
|
131
238
|
test_files:
|
132
239
|
- test/first.png
|
240
|
+
- test/jsmj.png
|
133
241
|
- test/second.png
|
134
242
|
- test/tesseract_bench.rb
|
135
243
|
- test/tesseract_spec.rb
|
@@ -1,112 +0,0 @@
|
|
1
|
-
T 31 46 39 56 0
|
2
|
-
h 40 46 48 56 0
|
3
|
-
e 49 46 57 53 0
|
4
|
-
( 69 45 74 57 0
|
5
|
-
q 76 44 84 53 0
|
6
|
-
u 85 46 93 53 0
|
7
|
-
i 95 46 101 56 0
|
8
|
-
c 103 46 111 53 0
|
9
|
-
k 113 46 120 56 0
|
10
|
-
) 122 45 127 57 0
|
11
|
-
b 139 46 147 56 0
|
12
|
-
r 148 46 156 53 0
|
13
|
-
o 157 46 165 53 0
|
14
|
-
w 166 46 174 53 0
|
15
|
-
n 175 46 183 53 0
|
16
|
-
{ 195 46 200 56 0
|
17
|
-
f 202 46 210 56 0
|
18
|
-
o 211 46 219 53 0
|
19
|
-
x 220 46 228 53 0
|
20
|
-
} 230 46 235 56 0
|
21
|
-
j 247 44 254 56 0
|
22
|
-
u 256 46 264 53 0
|
23
|
-
m 265 46 273 53 0
|
24
|
-
p 274 44 282 53 0
|
25
|
-
s 283 46 291 53 0
|
26
|
-
! 295 45 297 56 0
|
27
|
-
o 310 46 318 53 0
|
28
|
-
v 319 46 327 53 0
|
29
|
-
e 328 46 336 53 0
|
30
|
-
r 337 46 345 53 0
|
31
|
-
t 355 46 363 55 0
|
32
|
-
h 364 46 372 56 0
|
33
|
-
e 373 46 381 53 0
|
34
|
-
$ 392 45 399 56 0
|
35
|
-
3 400 46 408 56 0
|
36
|
-
, 410 45 415 48 0
|
37
|
-
4 418 46 426 56 0
|
38
|
-
5 427 46 435 56 0
|
39
|
-
6 436 46 444 56 0
|
40
|
-
. 447 45 451 48 0
|
41
|
-
7 454 46 462 56 0
|
42
|
-
8 463 46 471 56 0
|
43
|
-
< 482 46 488 56 0
|
44
|
-
l 492 46 496 56 0
|
45
|
-
a 499 46 507 53 0
|
46
|
-
z 509 46 515 53 0
|
47
|
-
y 517 44 525 53 0
|
48
|
-
> 526 46 532 56 0
|
49
|
-
# 544 47 551 55 0
|
50
|
-
9 553 46 561 56 0
|
51
|
-
0 562 46 570 56 0
|
52
|
-
d 580 46 588 56 0
|
53
|
-
o 589 46 597 53 0
|
54
|
-
g 598 44 606 53 0
|
55
|
-
& 616 46 624 56 0
|
56
|
-
d 634 46 642 56 0
|
57
|
-
u 643 46 651 53 0
|
58
|
-
c 652 46 660 53 0
|
59
|
-
k 662 46 669 56 0
|
60
|
-
/ 670 46 678 56 0
|
61
|
-
g 679 44 687 53 0
|
62
|
-
o 688 46 696 53 0
|
63
|
-
o 697 46 705 53 0
|
64
|
-
s 706 46 714 53 0
|
65
|
-
e 715 46 723 53 0
|
66
|
-
, 725 45 730 48 0
|
67
|
-
a 742 46 750 53 0
|
68
|
-
s 751 46 759 53 0
|
69
|
-
1 770 46 776 56 0
|
70
|
-
2 778 46 786 56 0
|
71
|
-
. 789 45 793 48 0
|
72
|
-
5 796 46 804 56 0
|
73
|
-
% 805 46 813 56 0
|
74
|
-
o 823 46 831 53 0
|
75
|
-
f 832 46 840 56 0
|
76
|
-
E 850 46 857 56 0
|
77
|
-
- 859 50 867 51 0
|
78
|
-
m 868 46 876 53 0
|
79
|
-
a 877 46 885 53 0
|
80
|
-
i 887 46 893 56 0
|
81
|
-
l 897 46 901 56 0
|
82
|
-
f 913 46 921 56 0
|
83
|
-
r 922 46 930 53 0
|
84
|
-
o 931 46 939 53 0
|
85
|
-
m 940 46 948 53 0
|
86
|
-
a 958 46 966 53 0
|
87
|
-
s 967 46 975 53 0
|
88
|
-
p 976 44 984 53 0
|
89
|
-
a 985 46 993 53 0
|
90
|
-
m 994 46 1002 53 0
|
91
|
-
m 1003 46 1011 53 0
|
92
|
-
e 1012 46 1020 53 0
|
93
|
-
r 1021 46 1029 53 0
|
94
|
-
@ 1030 46 1038 56 0
|
95
|
-
w 1039 46 1047 53 0
|
96
|
-
e 1048 46 1056 53 0
|
97
|
-
b 1057 46 1065 56 0
|
98
|
-
s 1066 46 1074 53 0
|
99
|
-
i 1076 46 1082 56 0
|
100
|
-
t 1084 46 1092 55 0
|
101
|
-
e 1093 46 1101 53 0
|
102
|
-
. 1104 45 1108 48 0
|
103
|
-
c 1111 46 1119 53 0
|
104
|
-
o 1120 46 1128 53 0
|
105
|
-
m 1129 46 1137 53 0
|
106
|
-
i 1148 46 1154 56 0
|
107
|
-
s 1156 46 1164 53 0
|
108
|
-
s 1174 46 1182 53 0
|
109
|
-
p 1183 44 1191 53 0
|
110
|
-
a 1192 46 1200 53 0
|
111
|
-
m 1201 46 1209 53 0
|
112
|
-
? 1211 46 1218 56 0
|
Binary file
|