Tesseract是Ray Smith于1985到1995年间在惠普布里斯托实验室开发的一个OCR引擎,曾经在1995 UNLV精确度测试中名列前茅。但1996年后基本停止了开发。2006年,Google邀请Smith加盟,重启该项目。目前项目的许可证是Apache 2.0。
该项目目前支持Windows、Linux和Mac OS等主流平台。但作为一个引擎,它只提供核心功能,没有界面。
RTesseract是Tesseract的ruby封装调用,其内部原理是先用mini_magick将图片转换为tif格式,再执行命令行调用Tesseract软件返回最终解析的字符串。
一、安装ImageMagick
sudo brew install imagemagick
二、安装Leptionica
下载地址:http://www.leptonica.org/download.html tar zxvf leptonica-1.69.tar.gz cd leptonica-1.69 ./configure make sudo make install
三、安装tesseract-ocr
下载地址:http://code.google.com/p/tesseract-ocr/downloads/detail?name=tesseract-3.01.tar.gz tar zxvf tesseract-3.01.tar.gz cd tesseract-3.01 ./autogen.sh ./configure make sudo make install
四、安装MiniMagick
gem install mini_magick
五、调用
# -*- encoding: utf-8 -*- require 'rtesseract' require 'mini_magick' def parse_price(price_url) img = MiniMagick::Image.open(price_url) img.resize '200x100' # 放大 img.colorspace("GRAY") # 灰度化 img.monochrome # 去色 str = RTesseract.new(img.path).to_s # 识别 File.unlink(img.path) # 删除临时文件 if str.nil? puts price_url else price = str.strip.sub(/Y/,'').to_f end end 调用: parse_price('http://jprice.360buyimg.com/price/gp723049-1-1-1.png') # => 169999.0
六、遇到的困难
1、识别的时候可能报异常:
RTesseract::ConversionError: RTesseract::ConversionError
追查到RTesseract插件内部发现里面抛出异常的位置,作者没把实际错误返回回来真可悲!
#Convert image to string def convert generate_uid tmp_file = Pathname.new(Dir::tmpdir).join("#{@uid}_#{@source.basename}") tmp_image = image_to_tiff #这里生成了命令行命令,格式类似:tesseract xxx.tif xxx.jpg `#{@command} "#{tmp_image}" "#{tmp_file.to_s}" #{lang} #{psm} #{config_file} #{clear_console_output}` @value = File.read("#{tmp_file.to_s}.txt").to_s @uid = nil remove_file([tmp_image,"#{tmp_file.to_s}.txt"]) #这里截获了所有异常! rescue raise RTesseract::ConversionError end
2、结果不准
可以适当调整图片的尺寸和灰度值
相关推荐
开放Ruby+watir 自动化测试工具介绍+安装说明
rubyonrails+Ruby+取得指定月日期数的思路方法
Ruby+on+Rails+程序设计深入剖析与范例应用
Ruby+on+Rails实践
Ruby+Rails+社交+教程2 - 本资源是一个Rails的教程,教你如何用Ruby的Rails框架开发一个社交网站,实现用户的关注,动态,私信等功能。
Ruby+on+Rails快速Web应用开发实战.pdf
Ruby+Rails+社交+进阶教程5 - 本资源是一个Rails的教程,教你如何用Ruby的Rails框架开发一个社交网站,实现用户的关注,动态,私信等功能。
rtesseract, 用于超立方体识别的ruby 库 rtesseract 用于超立方体识别的ruby 库。要求:要正常工作,需要使用 rtesseract:超正方体- 程序ImageMagick - 程序RMagick或者 mini_magick -
Ruby+Rails+社交+教程3 - 本资源是一个Rails的教程,教你如何用Ruby的Rails框架开发一个社交网站,实现用户的关注,动态,私信等功能。
ruby+watir技术实现的论坛发帖机器人,不完善。
博客“ruby+selenium-webdriver测试-测试用例源代码”
博客“ruby+selenium-webdriver一步一步进行自动化测试------面向对象编程”对应源代码
博客“ruby+selenium-webdriver测试--第一个例子源代码”
ruby + watir + excel 驱动的测试框架
0积分下载,不允许系统调分-20211115 ruby官方安装包
博客“ruby+selenium-webdriver测试--多个测试用例”源代码
Ruby+Java 搜索引擎零距离 搜索引擎原理与实现 只有前面的三章而已。
该rar包里包含了Redis3+ruby+redis.gem文件,在centOs6.5或7中都能使用
博客“ruby+selenium-webdriver测试-逻辑与数据分离”对应源代码