当前位置:首页 > 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 包装库,提供了更友好的接口。

安装库:

php 实现 ocr

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 密钥后使用:

php 实现 ocr

$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 更准确

标签: phpocr
分享给朋友:

相关文章

php实现搜索功能

php实现搜索功能

实现基本的搜索功能 在PHP中实现搜索功能通常涉及数据库查询。以下是一个简单的实现方式,假设使用MySQL数据库: <?php // 连接数据库 $conn = new mysqli('loc…

php实现mysql

php实现mysql

PHP 连接 MySQL 的基本方法 PHP 提供了多种方式与 MySQL 数据库进行交互,以下是最常用的几种方法。 使用 MySQLi 扩展 MySQLi 是 MySQL 的改进扩展,支持面向对…

php实现上传图片

php实现上传图片

上传图片的基本流程 PHP 实现图片上传功能需要处理文件接收、验证、保存等步骤。以下是具体实现方法。 创建 HTML 表单 在 HTML 中创建一个表单,设置 enctype="multipart/…

php实现静态

php实现静态

静态化实现方法 PHP实现静态化主要通过生成HTML文件或缓存机制来减少服务器动态解析的开销。以下是几种常见方法: 生成静态HTML文件 通过file_put_contents()将动态内容保存为H…

php实现下载

php实现下载

PHP实现文件下载 使用PHP实现文件下载可以通过设置HTTP头部信息强制浏览器下载文件而非直接打开。以下是几种常见的方法: 方法一:直接输出文件内容 $file_path = 'path/to/…

无限分类实现 php

无限分类实现 php

无限分类的实现方法 无限分类通常用于构建多层级结构的数据,如商品分类、部门架构等。以下是几种常见的实现方式: 邻接列表模式(Adjacency List) 邻接列表是最简单的实现方式,通过在每个记录…