class Tesseract::Engine
Attributes
confidence[R]
unlv[R]
config[R]
Public Class Methods
new(path = nil, language = :eng, mode = :DEFAULT, variables = {}, config = []) { |self| ... }
click to toggle source
# File lib/tesseract/engine.rb, line 37 def initialize (path = nil, language = :eng, mode = :DEFAULT, variables = {}, config = [], &block) # :yields: self @api = API.new @initializing = true @init = block @path = path @language = language @mode = mode @variables = variables @config = config @rectangle = [] yield self if block_given? @initializing = false _init end
Public Instance Methods
blacklist()
click to toggle source
# File lib/tesseract/engine.rb, line 108 def blacklist get('tessedit_char_blacklist').chars.to_a end
blacklist=(value)
click to toggle source
# File lib/tesseract/engine.rb, line 112 def blacklist= (value) set('tessedit_char_blacklist', value.respond_to?(:to_a) ? value.to_a.join : value.to_s) end
get(name)
click to toggle source
# File lib/tesseract/engine.rb, line 92 def get (name) @api.get_variable(name.to_s) || @variables[name] end
hocr()
click to toggle source
# File lib/tesseract/engine.rb, line 190 def hocr hocr_at end
hocr_at(x = nil, y = nil, width = nil, height = nil, page = nil)
click to toggle source
# File lib/tesseract/engine.rb, line 186 def hocr_at (x = nil, y = nil, width = nil, height = nil, page = nil) hocr_for(nil, x, y, width, height, page) end
hocr_for(image = nil, x = nil, y = nil, width = nil, height = nil, page = nil)
click to toggle source
# File lib/tesseract/engine.rb, line 177 def hocr_for (image = nil, x = nil, y = nil, width = nil, height = nil, page = nil) _setup(image, x, y, width, height) @api.get_hocr(page || 0) end
image=(image)
click to toggle source
# File lib/tesseract/engine.rb, line 134 def image= (image) @image = image end
input=(name)
click to toggle source
# File lib/tesseract/engine.rb, line 78 def input= (name) @api.set_input_name(name) end
load_config(*config)
click to toggle source
# File lib/tesseract/engine.rb, line 61 def load_config (*config) @config.concat config.flatten.compact.uniq unless @initializing @config.each {|conf| @api.read_config_file(conf) } end end
output=(name)
click to toggle source
# File lib/tesseract/engine.rb, line 82 def output= (name) @api.set_output_name(name) end
page_segmentation_mode()
click to toggle source
# File lib/tesseract/engine.rb, line 124 def page_segmentation_mode @api.get_page_seg_mode end
page_segmentation_mode=(value)
click to toggle source
# File lib/tesseract/engine.rb, line 128 def page_segmentation_mode= (value) @psm = C.for_enum(value) @api.set_page_seg_mode @psm end
process(image, page = nil)
click to toggle source
# File lib/tesseract/engine.rb, line 240 def process (image, page = nil) if page @api.process_page(API.image_for(image), page) else raise ArgumentError, 'the path does not exist' unless File.exists?(image) @api.process_pages(image) end end
select(x = nil, y = nil, width = nil, height = nil)
click to toggle source
# File lib/tesseract/engine.rb, line 141 def select (x = nil, y = nil, width = nil, height = nil) @rectangle = [x, y, width, height] end
set(name, value)
click to toggle source
# File lib/tesseract/engine.rb, line 86 def set (name, value) @variables[name] = value @api.set_variable(name.to_s, value.to_s) end
text()
click to toggle source
# File lib/tesseract/engine.rb, line 170 def text text_at end
text_at(x = nil, y = nil, width = nil, height = nil)
click to toggle source
# File lib/tesseract/engine.rb, line 166 def text_at (x = nil, y = nil, width = nil, height = nil) text_for(nil, x, y, width, height) end
text_for(image = nil, x = nil, y = nil, width = nil, height = nil)
click to toggle source
# File lib/tesseract/engine.rb, line 148 def text_for (image = nil, x = nil, y = nil, width = nil, height = nil) _setup(image, x, y, width, height) @api.get_text.tap {|text| text.instance_exec(@api) {|api| @unlv = api.get_unlv @confidence = api.mean_text_confidence class << self attr_reader :unlv, :confidence end } } end
version()
click to toggle source
# File lib/tesseract/engine.rb, line 57 def version @api.version end
whitelist()
click to toggle source
# File lib/tesseract/engine.rb, line 116 def whitelist get('tessedit_char_whitelist').chars.to_a end
whitelist=(value)
click to toggle source
# File lib/tesseract/engine.rb, line 120 def whitelist= (value) set('tessedit_char_whitelist', value.respond_to?(:to_a) ? value.to_a.join : value.to_s) end
with() { |self| ... }
click to toggle source
# File lib/tesseract/engine.rb, line 71 def with (&block) # :yields: self self.class.new(@path, @language, @mode, @variables.clone, @config.clone) {|e| @init.call(e) if @init block.call(e) if block } end
Protected Instance Methods
_init()
click to toggle source
# File lib/tesseract/engine.rb, line 251 def _init @api.end @api.init(@path, API.to_language_code(@language), @mode) @variables.each {|name, value| @api.set_variable(name.to_s, value.to_s) } @config.each {|conf| @api.read_config_file(conf) } @api.set_page_seg_mode @psm if @psm end
_iterator()
click to toggle source
# File lib/tesseract/engine.rb, line 298 def _iterator _recognize Iterator.new(@api.get_iterator) end
_recognize()
click to toggle source
# File lib/tesseract/engine.rb, line 292 def _recognize _setup @api.get_text end
_setup(image = nil, x = nil, y = nil, width = nil, height = nil)
click to toggle source
# File lib/tesseract/engine.rb, line 267 def _setup (image = nil, x = nil, y = nil, width = nil, height = nil) image ||= @image or raise ArgumentError, 'you have to set an image first' image = API.image_for(image) if !width && x width = image.width - x end if !height && y height = image.height - y end x ||= @rectangle[0] || 0 y ||= @rectangle[1] || 0 width ||= @rectangle[2] || image.width height ||= @rectangle[3] || image.height if (x + width) > image.width || (y + height) > image.height raise IndexError, 'image access out of boundaries' end @api.set_image(image) @api.set_rectangle(x, y, width, height) end