linux ocr 命令行,Linux下安裝tesseract-ocr和以命令行和c++代碼的使用方法

以下示例來自Ubuntu17.10

(1)安裝tesseract

sudo apt-get install tesseract-ocr

(2)如果想用 Tesseract 對圖像進行識別,還需要對應的語言文件。所謂的語言文件是 Tesseract 識別某種語言的文字圖像時需要的一些資源,這些東西也可以通過包管理器獲取。

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

這里就下了:eng是英語,chi_sim是中文

(3)安裝tesseract-ocr編譯必須的包。autoconf 可以幫助你寫出款平台編譯的程序,而automake則主要是幫你更好的完成跨 平台編譯這件事情。編譯需要用到各種編譯器命令,因為不想手動的執行這些命名出現了 Makefile,又因為不想手動的編寫Makefile出現了automake這類的工具,它讓你可以 只提供源文件的名稱便替你生成 Makefile,這也着實省下不少的麻煩。

程序庫的發展過程中首先出現的是靜態庫,實際上只是.o的打包而已。后來出現了更高級 的動態庫,可惜的是和之前一樣,這些動態庫在不同的系統上實現是不一樣的,為了能夠跨 平台的生成這些程序庫,也就有了libtool這類的工具。

sudo apt-get install autoconf automake libtool

(4)安裝libleptonica

您還需要安裝Leptonica。確保在編譯Tesseract之前安裝了Leptonica的開發頭文件

sudo apt-get install libleptonica-dev

安裝過程就告一段落了

下面介紹一下怎么使用

現在我的home下有兩張圖test.png

a20bc66adced4a755307deb1651e46a7.png

和test1.png

b51282d1327d3677ef8fbe4eb2241897.png

(1)命令行模式

lzj:~$ tesseract test.png out -l chi_sim

識別test.png 結果保存到out.txt文件

(2)c++代碼

#include

#include

int main()

{

char *outText;

tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI();

//使用中文初始化tesseract-ocr,而不指定tessdata路徑。

if (api->Init(NULL, "chi_sim"/*"eng"*/)) {

fprintf(stderr, "Could not initialize tesseract.\n");

exit(1);

}

// 使用leptonica庫打開輸入圖像。

Pix* image = pixRead("test.png");

api->SetImage(image);

// 得到光學字符識別結果

outText = api->GetUTF8Text();

printf("OCR output:\n%s", outText);

// 銷毀使用過的對象並釋放內存。

api->End();

delete [] outText;

pixDestroy(&image);

return 0;

}

編譯

g++ 1.cpp -llept -ltesseract

結果如下(命令行方式結果相同)

f512665baf585c46933693742ff25fca.png

再貼一個英文的,圖片如下

22c990c67a6e6447194a6a1b4c11c591.png

結果為

c36377761f49ad82de4cf42921434c73.png

我們可以看到,對英文的識別是優於中文的(中文這種象形文太復雜了…)

等我學完了如何提高識別度再回來總結一波

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值