一直以來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...