当前位置:首页 > PHP

php 实现 ocr

2026-02-15 02:41:58PHP

使用 Tesseract OCR 实现 PHP 文字识别

Tesseract 是一个开源的 OCR 引擎,支持多种语言。PHP 可以通过调用 Tesseract 命令行工具或使用包装库实现 OCR 功能。

安装 Tesseract OCR
在 Ubuntu/Debian 系统上安装 Tesseract 和中文语言包:

sudo apt install tesseract-ocr
sudo apt install tesseract-ocr-chi-sim

通过 exec 调用 Tesseract
PHP 可以通过 exec() 函数调用 Tesseract 命令行工具:

$imagePath = 'path/to/image.png';
$outputPath = 'path/to/output';
$language = 'chi_sim'; // 中文简体

exec("tesseract $imagePath $outputPath -l $language", $output, $returnCode);

if ($returnCode === 0) {
    $text = file_get_contents($outputPath . '.txt');
    echo $text;
} else {
    echo 'OCR 处理失败';
}

使用 thiagoalessio/tesseract-ocr-for-php 库

这是一个流行的 PHP Tesseract 包装库,提供了更友好的接口。

安装库:

composer require thiagoalessio/tesseract-ocr-for-php

使用示例:

require 'vendor/autoload.php';

use thiagoalessio\TesseractOCR\TesseractOCR;

$text = (new TesseractOCR('path/to/image.png'))
    ->lang('chi_sim') // 设置中文语言
    ->run();

echo $text;

使用百度 OCR API 实现

百度 AI 开放平台提供了强大的 OCR 接口,适合需要更高准确率的场景。

获取 API 密钥后使用:

$image = file_get_contents('path/to/image.jpg');
$base64 = base64_encode($image);
$url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=YOUR_ACCESS_TOKEN';

$data = [
    'image' => $base64,
    'language_type' => 'CHN_ENG'
];

$options = [
    'http' => [
        'header' => "Content-type: application/x-www-form-urlencoded\r\n",
        'method' => 'POST',
        'content' => http_build_query($data)
    ]
];

$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$result = json_decode($result, true);

print_r($result['words_result']);

使用 Google Cloud Vision API

Google 的 OCR 服务支持多种语言和复杂布局。

安装客户端库:

composer require google/cloud-vision

使用示例:

require 'vendor/autoload.php';

use Google\Cloud\Vision\V1\ImageAnnotatorClient;

$client = new ImageAnnotatorClient([
    'credentials' => 'path/to/service-account.json'
]);

$image = file_get_contents('path/to/image.jpg');
$response = $client->textDetection($image);
$texts = $response->getTextAnnotations();

foreach ($texts as $text) {
    echo $text->getDescription() . "\n";
}

$client->close();

性能优化建议

处理大量图像时考虑使用队列系统如 Redis 或 RabbitMQ 异步处理
对于低质量图像,预处理步骤如二值化、降噪能显著提高识别率
缓存常用识别结果减少重复处理
选择适合特定场景的 OCR 服务,如身份证识别、车牌识别等专用接口通常比通用 OCR 更准确

php 实现 ocr

标签: phpocr
分享给朋友:

相关文章

php实现树

php实现树

PHP实现树结构的方法 在PHP中实现树结构通常可以通过递归或迭代的方式完成。以下是几种常见的实现方法: 递归实现树结构 递归是处理树结构的自然方式,尤其适用于具有未知深度的树。 class Tr…

php实现队列

php实现队列

PHP实现队列的方法 队列是一种先进先出(FIFO)的数据结构,PHP可以通过多种方式实现队列功能。 使用数组模拟队列 PHP数组可以模拟队列的基本操作,通过array_push和array_sh…

php购物车实现

php购物车实现

PHP购物车实现方法 使用PHP实现购物车功能可以通过多种方式完成,以下是几种常见的实现方法: Session存储购物车数据 利用PHP的$_SESSION超全局变量存储购物车数据是最简单的方法。…

php 购物车实现

php 购物车实现

数据库设计 购物车功能通常需要设计数据库表存储商品和用户信息。常见的表包括products(商品表)、users(用户表)和cart(购物车表)。cart表通常包含字段:id(主键)、user_id(…

php 实现验证码

php 实现验证码

使用 PHP 生成验证码 验证码(CAPTCHA)用于防止自动化脚本提交表单,以下是几种常见的 PHP 实现方法。 使用 GD 库生成图片验证码 GD 库是 PHP 的图像处理扩展,可用于生成验证码…

php无限分类的实现

php无限分类的实现

PHP无限分类的实现 无限分类是一种常见的树形结构数据组织方式,适用于商品分类、菜单管理、地区选择等场景。以下是几种实现方法: 递归实现法 递归是最直观的实现方式,通过函数自身调用来遍历子分类。数…