今天在整理照片時,發現有張圖檔上拍了一個表格,手動将内容抄寫下來不太省力,于是想如果有一個軟體可以抓取圖像中的表格文字該多好。。。
從頭設計一套軟體完成這個工作量有點大,想到已經有了一些手寫體識别的應用,隻要在該技術基礎上再增加一層接口,其實就能完成上述任務。
該接口要靈活,能夠适應各種應用的文字識别,比如漢字手寫體,英文手寫體,宋體,以及上面的表格内容識别。因為一幅圖像中的内容是千差萬别的,我們可以借助一種圖像描述原語(image description primitives, idp)來完成這些内容的差別。
假設有如下idp:
def "table" p1; //表示該圖像中有一個表格,聲明為對象p1
set origin(x0,y0); //表示表格的左上角像素坐标
set end(x1,y1); //表示表格的右下角像素坐标
p1.cols = [5-10]; //表示該表格的列數可能在5~10列之間
p1.rows = [100-200]; //行數在100~200行之間
table tb = p1.getcontent(); //建立表格對象,從p1對象中抽取内容,以字元串形式存入tb中
//列印輸出字元串
for(int i = 0;i<tb.rows;i++)
{
for(int j = 0;j<tb.cols;j++)
{
printf("%s\t",tb[i][j]);
}
printf("\r\n");
}
end p1; //銷毀對象
除了表格對象,我們還可建立純文字對象,手寫體對象,英文手寫體對象等,識别原語都封裝到p1.getcontent()中。
隻是一時想到的,不知有沒有價值。本人隻是對文字識别感興趣,沒有相關經驗,一家之言,歡迎讨論。