
如圖所示的圖片,在字符分割前要進行預處理,怎么才能得到效果好的預處理圖片呢,能找出字符明顯的輪廓?
字符粘連情況下,應該采用什么方式分割呢?
uj5u.com熱心網友回復:
我用halcon做出來的,下面為具體代碼。read_image (Qq20191223160808, 'C:/Users/Administrator/Desktop/字符分割練習/QQ截圖20191223160808.png')
rgb1_to_gray (Qq20191223160808, GrayImage)
gray_range_rect (GrayImage, ImageResult, 16, 16)
threshold (ImageResult, Regions2, 104, 207)
connection (Regions2, ConnectedRegions2)
select_shape (ConnectedRegions2, SelectedRegions, 'area', 'and', 58073.4, 100000)
partition_dynamic (SelectedRegions, Partitioned1,90 , 10)
sort_region (Partitioned1, SortedRegions1, 'character', 'true', 'row')
*訓練****************
count_obj (Partitioned1, Number)
*創建訓練檔案******
*標簽
words:=['U','E','5','2','6','4','4','4']
TrainFile:='C:/Users/Administrator/Desktop/字符分割練習/testWords.trf'
dev_set_check('~give_error')
delete_file(TrainFile)
dev_set_check('~give_error')
*生成訓練檔案
for i:=1 to Number by 1
select_obj(SortedRegions1, SingleWord, i)
append_ocr_trainf(SingleWord,GrayImage,words[i-1],TrainFile)
endfor
*訓練檔案路徑
FontFile:='C:/Users/Administrator/Desktop/字符分割練習/testWords.omc'
*讀取訓練檔案
read_ocr_trainf_names(TrainFile, CharacterNames, CharacterCount)
NumHidden:=400
*自己創建神經網路分類器
create_ocr_class_mlp (10, 20, 'constant', 'default', CharacterNames, NumHidden, 'none', 10, 42, OCRHandle)
*這里采用halcon預訓練模型;第二次及以后訓練先將檔案名改為FontFile,呼叫已訓練的引數繼續訓練
*read_ocr_class_mlp ('DotPrint_0-9A-Z_NoRej.omc', OCRHandle)
*訓練
trainf_ocr_class_mlp (OCRHandle, TrainFile, 200, 1, 0.01, Error, ErrorLog)
*保存引數到自己命名的檔案
write_ocr_class_mlp(OCRHandle, FontFile)
*釋放記憶體
clear_ocr_class_mlp(OCRHandle)
stop ()
*識別代碼
dev_display (Qq20191223160808)
rgb1_to_gray (Qq20191223160808, GrayImage)
gray_range_rect (GrayImage, ImageResult, 16, 16)
threshold (ImageResult, Regions2, 104, 207)
connection (Regions2, ConnectedRegions2)
select_shape (ConnectedRegions2, SelectedRegions, 'area', 'and', 58073.4, 100000)
partition_rectangle (SelectedRegions, Partitioned1, 90, 150)
sort_region (Partitioned1, SortedRegions1, 'character', 'true', 'row')
*訓練****************
count_obj (SortedRegions1, Number)
*計算每一個字符區域中心
area_center (SortedRegions1, Area, Row, Column)
FontFile:='C:/Users/Administrator/Desktop/字符分割練習/testWords.omc'
*讀取已訓練好的引數
read_ocr_class_mlp(FontFile, OCRHandle)
*識別
do_ocr_multi_class_mlp (SortedRegions1, GrayImage, OCRHandle, RecNum, Confidence)
stop ()
*顯示在螢屏上
dev_display (GrayImage)
dev_disp_text (RecNum, 'window', Row, Column, 'black', [], [])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/127532.html
標籤:OpenCV
