Skip to content

Latest commit

 

History

History
262 lines (205 loc) · 12 KB

API-zh.md

File metadata and controls

262 lines (205 loc) · 12 KB

EasyOCR API


EasyOCR 内置两套主要的API:

  1. ImageClean:验证码图片清理类,完成各种验证码图片的清理工作并输出。支持图片清理(内置几种预定义的图片清理模式可以灵活切换选择)、形变和旋转三种场景,并支持场景的同时应用。

  2. EasyOCR:识别图片文字的OCR核心类,完成对OCR引擎的调用。内部可借助ImageClean完成自动清理,识别的一体化工作。

1. ImageClean:

ImageClean主要是为了完成验证码的清理工作,支持图片清理、形变和旋转三种场景。图片清理选项内置多种清理方法,通过ImageType枚举可选择预定义的图片清理模式。

  • ImageType 图片类型枚举(预定义的验证码图片清理模式):

  • CAPTCHA_NORMAL :普通验证码图片 普通验证码

  • CAPTCHA_INTERFERENCE_LINE :带干扰线的验证码图片 带干扰线的验证码图片

  • CAPTCHA_SPOT : 点状验证码图片 点状验证码 点状验证码

  • CAPTCHA_WHITE_CHAR : 白色文字,纯色背景验证码图片 白色文字验证码 白色文字验证码

  • CAPTCHA_HOLLOW_CHAR : 空心文字验证码图片 空心文字验证码 空心文字验证码

  • CLEAR : 无特殊干扰的普通图片清晰化,提高识别率 普通图片清晰化

  • NONE : 在识别时,不对图片做任何清理

  • 由于验证码图片种类繁多,而且具体场景要具体处理,并无完全通用的方案。EasyOCR内置的清理类型仅针对有限情况,面对具体场景还需通过有针对性处理,如通过其他方式对图片进行预处理,或对ORC引擎进行特别训练实现。

  • EasyOCR支持自定义图片清理插件,能够基于EasyOCR完成一体化识别的验证码图片清理识别。 EasyOCR 图片清理插件编写

  1. 构造方法:

    /**
     * 构造图片清理对象
     * 
     * @param imageType  验证码图片类型,默认为 ImageType.CAPTCHA_NORMAL
     * @param imageWidthRatio 图片宽度形变比例,默认为 1
     * @param imageHeightRatio 图片宽度形变比例,默认为 1
     * @param degrees 图片顺时针旋转角度,默认为 0
     */
     ImageClean([Type imageType] [, double imageWidthRatio] [, double  imageHeightRatio] [, int degrees]);
  2. 核心方法:

  • 图片清理
  /**
    * 图片清理
    * 
    * @param from  需要清理的图片,支持File字符串路径;http://、ftp://开头的URL字符串;File文件对象;InputStream输入流等多种来源重载
    * @param to 清理后的图片,支持String字符串路径、File文件对象等多种重载。
    * @param imageWidthRatio 直接指定图片宽度度放大比例,某些图片形变后识别率可以提高,默认为 1
    * @param imageHeightRatio 直接指定图片高度放大比例,某些图片形变后识别率可以提高,默认为 1
    * @param degrees 直接指定图片顺时针旋转角度,默认为 0
    * @return 处理结果
    */
 public boolean cleanImage(from, to [, imageWidthRatio] [, imageHeightRatio] [, degrees]);
  1. 其他方法:

以下方法可以直接设置ImageClean实例的默认属性值,在进行清理操作时,无需每次直接传入参数。

  • 默认图片清理类型
 void setImageType(Type imageType)
  • 图片宽度和高度形变比例,某些图片形变后识别率可以提高,1为原始比例,不形变
 void setImageRatio(double imageWidthRatio, double imageHeightRatio)
  • 图片宽度形变比例,1为原始比例
 void setImageWidthRatio(double imageWidthRatio)
  • 图片高度形变比例,1为原始比例
 void setImageHeightRatio(double imageHeightRatio)
  • 图片顺时针旋转角度,0为默认值,不旋转
 void setDegrees(int degrees)

2. EasyOCR:

识别图片文字的OCR核心类,完成对OCR引擎的调用。内部可借助ImageClean完成自动清理、形变、旋转和识别的一体化工作。

  • EasyOCR 提供两种类型的识别方法,并对识别结果提供直接返回字符串,保存到文件,保存到文件并返回字符串三种方式处理结果。 直接识别:discern、discernToFile、discernToFileAndGet 清理并识别:discernAndAutoCleanImage、discernToFileAndAutoCleanImage、discernToFileAndGetAndAutoCleanImage
  1. 构造方法:

    /**
     * 构造图片清理对象
     * 
     * @param tesseractPath  tesseract执行命令的位置,如果配置了path环境变量,则可以不用设置
     * @param tesseractOptions tesseract命令执行参数
     */
     EasyOCR([String tesseractPath] [, String tesseractOptions]);
  • tesseractOptions 中英文语言可选常量: Tesseract-OCR 默认可直接识别英文。tesseractOptions属性可以指定tesseract命令行参数,用来控制识别的语言(需要提前安装好语言包),细节参数等。 EasyOCR内置了中文和英文基本参数常量可供选择。
 /**
    * 英文识别命令执行参数
    */
   public static final String OPTION_LANG_ENG = "-l eng";
   /**
    * 中文识别命令执行参数
    */
   public static final String OPTION_LANG_CHI_SIM = "-l chi_sim";
  1. 核心方法: EasyOCR 提供两种类型的识别方法,并对识别结果提供直接返回字符串,保存到文件,保存到文件并返回字符串三种方式处理结果。
  • 直接识别图片
  /**
   * 识别图片内容,并返回读取到的内容字符串
   * 
   * @param fromImage 要识别的图片,支持File字符串路径;http://、ftp://开头的URL字符串;File文件对象;InputStream输入流等多种来源重载
   * @return 读取到的代码
   */
  public String discern(fromImage)

  /**
   * 将识别的图片上的内容输出到指定文件。不指定toFile参数时,输出到默认输出到 System.getProperty("java.io.tmpdir") 目录,默认输出文件名为:图片名.txt
   * 
   * @param fromImage 要识别的图片,支持File字符串路径;http://、ftp://开头的URL字符串;File文件对象;InputStream输入流等多种来源重载
   * @param toFile 保存内容的文件,默认会自动添加.txt后缀       
   * @return 生成是否完成
   */
  public boolean discernToFile(fromImage [, String toFile]) 

  /**
   * 将识别的图片上的内容输出到指定文件,并返回读取到的内容字符串。不指定toFile参数时,输出到默认输出到 System.getProperty("java.io.tmpdir") 目录,默认输出文件名为:图片名.txt
   * 
   * @param fromImage 要识别的图片,支持File字符串路径;http://、ftp://开头的URL字符串;File文件对象;InputStream输入流等多种来源重载
   * @param toFile  同时保存进的的文件,默认会自动添加.txt后缀    
   * @return 读取到的代码
   */
  public String discernToFileAndGet(fromImage [, String toFile]) 
  • 清理并识别图片
  /**
   * 按图片类型、形变比例、顺时针旋转角度等场景,清理识别图片内容,并返回读取到的内容字符串
   * 
   * @param fromImage 要识别的图片,支持File字符串路径;http://、ftp://开头的URL字符串;File文件对象;InputStream输入流等多种来源重载
   * @param imageType 图片类型枚举,默认为ImageType.NONE
   * @param autoCleanImageWidthRatio 直接指定图片宽度度放大比例,某些图片形变后识别率可以提高
   * @param autoCleanImageHeightRatio 直接指定图片高度放大比例,某些图片形变后识别率可以提高
   * @param autoCleanDegrees 图片自动清理时的顺时针旋转角度               
   * @return 识别内容
   */
  public String discernAndAutoCleanImage(fromImage [, Type imageType] [, double autoCleanImageWidthRatio] [, double  autoCleanImageHeightRatio] [, int autoCleanDegrees]) 

  /**
   * 按图片类型、形变比例、顺时针旋转角度等场景,清理识别图片内容,输出到指定文件,输出文件无需后缀名.txt
   * 不指定toFile参数时,输出到默认输出到 System.getProperty("java.io.tmpdir") 目录,默认输出文件名为:图片名.txt
   *
   * @param fromImage 要识别的图片,支持File字符串路径;http://、ftp://开头的URL字符串;File文件对象;InputStream输入流等多种来源重载
   * @param toFile 保存内容的文件,默认会自动添加.txt后缀
   * @param imageType  图片类型, ImageType.NONE
   * @param autoCleanImageWidthRatio  直接指定图片宽度度放大比例,某些图片形变后识别率可以提高
   * @param autoCleanImageHeightRatio 直接指定图片高度放大比例,某些图片形变后识别率可以提高
   * @param autoCleanDegrees 图片自动清理时的顺时针旋转角度     
   * @return 生成是否完成
   */
  public boolean discernToFileAndAutoCleanImage(fromImage [,String toFile] [, Type imageType] [, double autoCleanImageWidthRatio] [, double autoCleanImageHeightRatio] [,int autoCleanDegrees])

  /**
   * 按图片类型、形变比例、顺时针旋转角度等场景,清理识别图片内容,输出到指定文件,并返回读取到的内容字符串,输出文件无需后缀名.txt
   *  不指定toFile参数时,输出到默认输出到 System.getProperty("java.io.tmpdir") 目录,默认输出文件名为:图片名.txt
   *
   * @param fromImage 要识别的图片,支持File字符串路径;http://、ftp://开头的URL字符串;File文件对象;InputStream输入流等多种来源重载
   * @param toFile 同时保存内容的的文件,默认会自动添加.txt后缀
   * @param imageType 图片类型
   * @param autoCleanImageWidthRatio 直接指定图片宽度度放大比例,某些图片形变后识别率可以提高
   * @param autoCleanImageHeightRatio 直接指定图片高度放大比例,某些图片形变后识别率可以提高
   * @param autoCleanDegrees 图片自动清理时的顺时针旋转角度     
   * @return 读取到的代码
   */
  public String discernToFileAndGetAndAutoCleanImage(fromImage [, String toFile] [, Type imageType] [, double autoCleanImageWidthRatio] [, double autoCleanImageHeightRatio] [,int autoCleanDegrees])
  1. 其他方法:

以下方法可以直接设置EasyOCR实例的默认属性值,在进行识别操作时,调用清理并识别图片方法时,无需每次直接传入参数。

  • tesseract执行命令的位置,如果配置了path环境变量,则可以不用设置
void setTesseractPath(String tesseractPath)
  • tesseract命令执行参数,用来调整运行参数。可从TesseractOCR.OPTION_LANG_...常量选择基本语言
void setTesseractOptions(String tesseractOptions)
  • 设置图片清理类型
 void setAutoCleanImageType(Type autoCleanImageType) 
  • 图片宽度和高度形变比例,某些图片形变后识别率可以提高,1为原始比例,不形变
 void setAutoCleanImageRatio(double autoCleanImageWidthRatio, double autoCleanImageHeightRatio)
  • 图片宽度形变比例,1为原始比例
 void setAutoCleanImageWidthRatio(double autoCleanImageWidthRatio)
  • 图片宽度形变比例,1为原始比例
 void setAutoCleanImageHeightRatio(double autoCleanImageHeightRatio)
  • 图片顺时针旋转角度,0为默认值,不旋转
 void setDegrees(int autoCleanDegrees)

结束

留言评论

如果您有更好意见,建议或想法,请联系我。

联系、反馈、定制、培训 Email:[email protected]

http://www.easyproject.cn