c halcon1 5 ocr字元識別

2021-10-09 10:26:01 字數 2049 閱讀 9075

一直以來halcon都是工業界高效穩定準確的視覺演算法庫的代表,其定位,檢測和識別演算法都比較好,有很多學員不太了解其ocr字元識別演算法如何編寫,今天和大家一起**利用c#+halcon如何實現ocr。

1.載入字型檔industrial_0-9_norej.omc

hoperatorset.createtextmodelreader("auto","industrial_0-9_norej.omc", out hv_textmodel);

2.定位字元位置並輸出識別結果

hobject hv_characters;

hoperatorset.setcolor(hwindowcontrol1.halconwindow, "green");

hwindowcontrol1.focus();

htuple r, c, phi, len1, len2,hv_rel_class;

hobject rectangle;

hwindowcontrol1.focus();

hoperatorset.drawrectangle2(hwindowcontrol1.halconwindow, out r, out c, out phi, out len1, out len2);

hoperatorset.genrectangle2(out rectangle, r, c, phi, len1, len2);

hoperatorset.clearwindow(hwindowcontrol1.halconwindow);

hoperatorset.dispobj(himage, hwindowcontrol1.halconwindow);

hoperatorset.dispobj(rectangle, hwindowcontrol1.halconwindow);

hoperatorset.reducedomain(himage, rectangle, out temp);

hoperatorset.findtext(temp, hv_textmodel, out hv_textreslut);

hoperatorset.gettextobject(out hv_characters, hv_textreslut, "all_lines");

hoperatorset.smallestrectangle1(hv_characters, out hv_row1, out hv_column1,

out hv_row2, out hv_column2);

hoperatorset.setcolored(hwindowcontrol1.halconwindow, 12);

hoperatorset.dispobj(hv_characters, hwindowcontrol1.halconwindow);

hoperatorset.gettextresult(hv_textreslut, "class", out hv_rel_class);

htuple i;

for (i = 0; (int)i <= (int)((new htuple(hv_rel_class.tuplelength())) - 1); i = (int)i + 1)

hoperatorset.settposition(hwindowcontrol1.halconwindow, (hv_row2.tupleselect(i)) + 10,

hv_column1.tupleselect(i));

hoperatorset.writestring(hwindowcontrol1.halconwindow, hv_rel_class.tupleselect(

i));

總結:createtextmodelreader   ------用於讀取ocr字型檔

findtext--------------------------用於獲取字元分割結果

gettextobject-------------------用於獲取字元分割後的目標

gettextresult--------------------用於獲取字元識別結果

以下**:

halcon自帶ocr字型檔能識別不同型別的工業文字,如果識別效果不好,可以自行訓練字型檔。

OCR系列之一 字元識別技術總覽

最近入坑研究ocr,看了比較多關於ocr的資料,對ocr的前世今生也有了乙個比較清晰的了解。所以想寫一篇關於ocr技術的綜述,對ocr相關的知識點都好好總結一遍,以加深個人理解。如果要給ocr進行分類,我覺得可以分為兩類 手寫體識別和印刷體識別。這兩個可以認為是ocr領域兩個大主題了,當然印刷體識別...

10 3 字串逆序 15

輸入乙個字串,對該字串進行逆序,輸出逆序後的字串。輸入格式 輸入在一行中給出乙個不超過80個字元長度的 以回車結束的非空字串。輸出格式 在一行中輸出逆序後的字串。輸入樣例 hello world 輸出樣例 dlrow olleh include include int main int argc,c...

實驗7 3 7 字元轉換(15 分)

實驗7 3 7 字元轉換 15 分 本題要求提取乙個字串中的所有數字字元 0 9 將其轉換為乙個整數輸出。輸入格式 輸入在一行中給出乙個不超過80個字元且以回車結束的字串。輸出格式 在一行中輸出轉換後的整數。題目保證輸出不超過長整型範圍。輸入樣例 free82jeep5 輸出樣例 825 inclu...