PHP 的光学标记识别

2.0 2019-09-12 15:23 UTC

This package is auto-updated.

Last update: 2024-09-06 04:32:04 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version MIT license Build Status

这是一个用 PHP 编写的开源库,用于识别问卷调查扫描中的标记

查看: https://en.wikipedia.org/wiki/Optical_mark_recognition

如何使用

添加库

$ composer require jansenfelipe/omr

实例化负责读取图像和输入其路径的 Scanner

/*
 * Setup scanner
 */
$scanner = new ImagickScanner();
$scanner->setImagePath($imagePath);

您需要扫描一张空白表格并创建一个 目标映射文件 才能使用此库。

创建 map.json 文件后,输入其路径

/*
 * Setup map
 */
$map = MapJson::create($mapJsonPath);

现在您可以扫描并获取结果

$result = $scanner->scan($map);

扫描器

此库目前只有一个扫描器类,使用 Imagemagick 6。它已经在以下配置下进行了测试

  • PHP 7.3
  • imagemagick6
  • 扩展 imagick-3.4.4

查看 https://github.com/jansenfelipe/omr/blob/master/src/Scanners/ImagickScanner.php

目标映射文件

这是一个 .json 文件,除了图像信息外,还描述了脚本必须进行像素分析的坐标(目标)。此文件遵循以下模式

{
    "width": 600,
    "height": 800,
    "targets": [
      {
        "x1": 50,
        "y1": 43,
        "x2": 65,
        "y2": 57,
        "id": "Foo",
        "type": "rectangle",
        "tolerance": 60
      }
    ] 
}

示例

example 目录中有一个完成的问卷调查图像 response.png。还有一个 map.json 文件,它给出了将被分析的图像区域坐标。

为了帮助设置环境,项目中有一个基于官方 PHP 7.3 图像的 Dockerfile,该文件向 PHP 添加了 composer、imagemagick 和 imagick 扩展。

这样,您就可以安装依赖项并运行命令来处理图像,无需头疼 :)

  1. 克隆此仓库
$ git clone https://github.com/jansenfelipe/omr.git
$ cd omr/
  1. 安装依赖项
$ docker-compose run php composer install
  1. 处理示例图像
$ docker-compose run php bin/omr scan example/response.png example/map.json

许可

MIT 许可证 (MIT)