我正在尝试使用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 回答
我对Abbyy SDK了解不多 . 但在您尝试在图像上使用任何OCR引擎之前,您应始终确保...
...使用不同颜色裁剪所有边框,
...缩放图像,使文本的(虚拟)大小至少为每300 DPI 10 pt .
我尝试了Tesseract v3.01对你的原始样本,它没有找到任何东西 .
然后我应用ImageMagick命令裁剪边框并将图像缩放到200%,如下所示:
得到这张照片:
这已经让Tesseract的命令行识别出大部分文本(它在
@
和.
上失败):如果我......我很可能会将Tesseract的识别率接近100% .
...为OCR目的提高图像质量:增加对比度并转换为纯灰度('binarization');
... 'train' Tesseract对本文档中使用的特定字体 .
我认为你可以通过类似的措施让Abbyy的生活更轻松......