All Projects → mohuishou → Imageocr

mohuishou / Imageocr

Licence: mit
PHP验证码识别[PHP CAPTCHA Recognition]

Projects that are alternatives of or similar to Imageocr

Captcha platform
[验证码识别-部署] This project is based on CNN+BLSTM+CTC to realize verificationtion. This projeccode identificat is only for deployment models.
Stars: ✭ 458 (+90.04%)
Mutual labels:  ocr, captcha
Baiduyun deeplearning competition
百度云魅族深度学习应用大赛
Stars: ✭ 393 (+63.07%)
Mutual labels:  ocr, captcha
ddddocr
带带弟弟 通用验证码识别OCR pypi版
Stars: ✭ 4,093 (+1598.34%)
Mutual labels:  ocr, captcha
Cintruder
Captcha Intruder (CIntrud3r) is an automatic pentesting tool to bypass captchas.
Stars: ✭ 192 (-20.33%)
Mutual labels:  ocr, captcha
Gocaptcha
A captcha library written in golang
Stars: ✭ 154 (-36.1%)
Mutual labels:  image, captcha
Easyocr
Java OCR 识别组件(基于Tesseract OCR 引擎)。能自动完成图片清理、识别 CAPTCHA 验证码图片内容的一体化工作。Java Image cleanup, OCR recognition component (based Tesseract OCR engine, automatically cleanup image and identification CAPTCHA verification code picture content).
Stars: ✭ 466 (+93.36%)
Mutual labels:  ocr, captcha
Ccextractor
CCExtractor - Official version maintained by the core team
Stars: ✭ 356 (+47.72%)
Mutual labels:  image, ocr
Mybox
Easy tools of document, image, file, network, location, color, and media.
Stars: ✭ 45 (-81.33%)
Mutual labels:  image, ocr
Captcha break
验证码识别
Stars: ✭ 2,268 (+841.08%)
Mutual labels:  ocr, captcha
Rnn ctc
Recurrent Neural Network and Long Short Term Memory (LSTM) with Connectionist Temporal Classification implemented in Theano. Includes a Toy training example.
Stars: ✭ 220 (-8.71%)
Mutual labels:  ocr, captcha
Open Paperless
Scan, index, and archive all of your paper documents (acquired by Mayan EDMS)
Stars: ✭ 2,538 (+953.11%)
Mutual labels:  ocr
Medium Zoom
🔎🖼 A JavaScript library for zooming images like Medium
Stars: ✭ 2,799 (+1061.41%)
Mutual labels:  image
Box
A mruby-based Builder for Docker Images
Stars: ✭ 236 (-2.07%)
Mutual labels:  image
Ultimatepp
U++ is a C++ cross-platform rapid application development framework focused on programmer's productivity. It includes a set of libraries (GUI, SQL, Network etc.), and integrated development environment (TheIDE).
Stars: ✭ 237 (-1.66%)
Mutual labels:  image
Dualgan
DualGAN-tensorflow: tensorflow implementation of DualGAN
Stars: ✭ 230 (-4.56%)
Mutual labels:  image
Nexus Cli
Nexus CLI for Docker Registry v2 🐳
Stars: ✭ 236 (-2.07%)
Mutual labels:  image
Photofilters
photofilters library for flutter
Stars: ✭ 229 (-4.98%)
Mutual labels:  image
Mayan Edms
Free Open Source Document Management System (mirror, no pull request or issues)
Stars: ✭ 226 (-6.22%)
Mutual labels:  ocr
Slideimageview
Simple and convenient library that allows you to slide images through a view.
Stars: ✭ 227 (-5.81%)
Mutual labels:  image
Imagecli
A command line image processing tool
Stars: ✭ 242 (+0.41%)
Mutual labels:  image

ImageOCR

php 验证码识别库,对于非粘连字符具有很好的识别效果,对于一般粘连字符也能有较为良好的识别 除噪算法支持孤立点除杂和连通域除噪,分割算法支持等宽分割、连通域分割以及滴水算法分割

示例效果

示例

Install

composer require mohuishou/image-ocr

使用方法

例子详见 example

use docker

docker run --rm -p 8088:8088 mohuishou/image-ocr

点击 http://localhost:8088 查看效果

大致流程:

初始化 -> 灰度化 ---> 二值化 ---> 除噪点 -> 分割 -> 标准化 -> 识别

初始化

对象初始化

$image=new Image($img_path);
$image_ocr=new ImageOCR($image)

初始化二值化阈值

$image_ocr->setMaxGrey(90);
$image_ocr->setMinGrey(10);

初始化标准化图片宽高

$image_ocr->setStandardWidth(13);
$image_ocr->setStandardHeight(20);

开启 Debug

$image_ocr->setDebug(true);

灰度化

try{
    $image_ocr->grey();
}catch (\Exception $e){
    echo $e->getMessage();
}

二值化

注意:这一步的前提是需要先执行上一步灰度化,不然会抛出一个错误

try{
    $image_ocr->hash($max_grey=null,$min_grey=null);
}catch (\Exception $e){
    echo $e->getMessage();
}

二值化支持两种方式,第一种$image_ocr->hash($max_grey=null,$min_grey=null)即为上面那种固定的阈值范围,第二种为hashByBackground($model=self::MAX_MODEL,$max_grey=null,$min_grey=null),通过背景图像的灰度值,动态取阈值,支持三种模式MAX_MODEL,MIN_MODEL,BG_MODEL分别是最大值、最小值和背景模式,最大值模式会用背景的灰度值替换阈值的上限,最小值模式替换下限,背景模式上下限都替换,即为只去除背景

除噪点

前置条件为二值化

孤立点除噪法
try{
    $image_ocr->removeSpots();
}catch (\Exception $e){
    echo $e->getMessage();
}
连通域除噪法

[如果要使用连通域分割法,可以跳过连通域除噪点,分割的同时可以一并除噪]

try{
    //使用之前需要初始化连通域对象
    $image_ocr->setImageConnect();
    //除噪
    $image_ocr->removeSpotsByConnect();
}catch (\Exception $e){
    echo $e->getMessage();
}

分割

非粘连字符串

连通域分割法

try{
    //使用之前需要初始化连通域对象
    $image_ocr->setImageConnect();
    //分割
    $image_ocr->splitByConnect();
}catch (\Exception $e){
    echo $e->getMessage();
}
粘连字符串

滴水算法分割

TODO: 待测试

标准化

try{
    $standard_data=$image_ocr->standard();
}catch (\Exception $e){
    echo $e->getMessage();
}

识别

TODO:待完善

API

ImageOCR::__construct(Image $image)
ImageOCR::saveImage($path)
ImageOCR::grey()
ImageOCR::hash($max_grey=null,$min_grey=null)
ImageOCR::hashByBackground($model=self::MAX_MODEL,$max_grey=null,$min_grey=null)
ImageOCR::removeSpots()
ImageOCR::removeSpotsByConnect()
ImageOCR::standard()
ImageOCR::setImageConnect()
ImageOCR::setImage(Image $image)
ImageOCR::getStandardData()
ImageOCR::setMaxGrey($max_grey)
ImageOCR::setMinGrey($min_grey)
ImageOCR::setStandardWidth($standard_width)
ImageOCR::setStandardHeight($standard_height)

//ImageTool的方法均为静态方法
ImageTool::removeZero($data)
ImageTool::removeZeroColumn($hash_data)
ImageTool::drawBrowser($data)
ImageTool::transposeAndRemoveZero($hash_data)
ImageTool::hashTranspose($hash_data)
ImageTool::img2hash($img)
ImageTool::hash2img($hash_data,$padding=0)

CHANGELOG

0.2 [2017-4-1]

0.1 [2016-10-7]

  1. 默认模板保存方式由数据库改为文件,保存路径为./db/db.json
  2. 使用 composer 安装
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].