生活随笔
收集整理的這篇文章主要介紹了
halcon小例:ORC识别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ORC識別
原圖
識別后
Halcon代碼如下:
*關閉窗口
dev_close_window ()
*讀取圖片
read_image (Image,
'C:/Users/Pictures/13_81_bcb4442e5fb68e9.bmp')
*通過均值濾波器,平滑圖像
mean_image (Image, Img_m1,
3,
3)
*通過均值濾波器,再次平滑圖像
mean_image (Img_m1, Img_m2,
17,
17)
*閾值處理,滿足Img_mi>=Img_m2+
5的像素點輸出
dyn_threshold (Img_m1, Img_m2, Reg_th,
5,
'light')
*連接閾值分割后的區域
connection (Reg_th, Reg_con)
*根據特征選擇連接后的區域(再次精確連接區域),限制寬高,識別出區域
select_shape (Reg_con, Reg_sel, [
'height',
'width'],
'and', [
50,
15], [
70,
45]) *排序區域,從左到右,遞增
sort_region (Reg_sel, Reg_sort,
'character',
'true',
'row')
*膨脹
dilation_circle (Reg_sort, Reg_dil,
1.5) *反轉圖像
invert_image (Img_m1, Img_inv) *讀取ORC分類器(halcon提供的訓練庫)
read_ocr_class_mlp (
'Pharma_0-9A-Z.omc', OCRHandle)
*調用ORC分類器,識別字符
do_ocr_multi_class_mlp (Reg_dil, Img_inv, OCRHandle, Class, Confidence) *打開一個以給定的縱橫比打開新的圖形窗口
dev_open_window_fit_image (Image,
0,
0, -
1, -
1, WindowHandle)
*顯示灰度圖
disp_image (Image, WindowHandle)*識別每個字符的最小矩形區域
smallest_rectangle1 (Reg_sort, R1, C1, R2, C2)
*設置顯示的字體
set_display_font (WindowHandle,
14,
'mono',
'true',
'false')
*遍歷
0到
16
for i:=
0 to |R1|-
1 by
1 *在指定位置顯示指定樣式文本disp_message (WindowHandle, Class[i],
'window', R1[i]-
20, C1[i],
'black',
'true')
endfor
*設置矩形區域填充方式
dev_
set_draw (
'margin')
*畫矩形
disp_rectangle1 (WindowHandle, R1, C1, R2, C2)
*關閉窗口
*dev_close_window ()
*清理ORC分類器
*clear_ocr_class_mlp (OCRHandle)
相關系列
- Halcon+MFC條形碼識別
- 一維條形碼檢測與識別原理
總結
以上是生活随笔為你收集整理的halcon小例:ORC识别的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。