ABBYY OCR SDK:我正在尝试一个示例脚本来识别名片但没有获得任何输出

时间:2012-04-03 11:31:47

标签: php ocr abbyy

我正在尝试使用ABBYY.com的PHP中的OCR SDK来识别名片。我有以下代码只是为了检查它是如何工作的。当我执行代码时,我得到一个空白输出。我可能在代码上错误的地方?


$applicationId = "MyBusinessCardReader";
$password = "password";
$filename = "businesscard.jpg";
$localDir = dirname(__FILE__);
$url = "http://cloud.ocrsdk.com/processBusinessCard";

$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_USERPWD, "$applicationId:$password");
curl_setopt($c, CURLOPT_POST, 1);

$post_array = array(
  "my_file" => "@$localDir$filename"
);

curl_setopt($c, CURLOPT_POSTFIELDS, $post_array);
$response = curl_exec($c);
curl_close($c);

echo "<pre>";
echo $response;
echo "</pre>";

可以在http://test.goje87.com/vangal/businesscard.jpg

看到samle名片图片

1 个答案:

答案 0 :(得分:2)

我对Abbyy SDK了解不多。但在您尝试在图像上使用任何 OCR引擎之前,您应该始终确保...

  • ...裁剪所有不同颜色的边框,
  • ...缩放图像,使文本的每个DPI至少达到10磅的(虚拟)大小。

我针对您的原始样本尝试了Tesseract v3.01,但没有找到任何内容。

然后我应用ImageMagick命令裁剪边框并将图像缩放到200%,如下所示:

convert                 \
    businesscard.jpg    \
   -crop 440x200+30+120 \
   -scale 180%          \
    cropped+scaled-businesscard.jpg

得到这张照片:

Cropped businesscard

这已经让Tesseract的命令行能够识别大部分文本(它在@.上失败):

tesseract b.jpg bcard && cat bcard.txt

  Tesseract Open Source OCR Engine v3.01 with Leptonica

    Fe/<70"
    MIKE FARAG
    PH 913 284 6455
    EM milzeocreatefervoncom
    Tw 0mil<efarag01
    createfervoncom

如果我......

,最有可能让Tesseract的识别率接近100%
  • ...为OCR目的提高图像质量:增加对比度并转换为纯灰度('二值化');
  • ...'训练'Tesseract对本文档中使用的特定字体。

我认为你可以通过类似的措施让Abbyy的生活更轻松......