0008_OCR識別(1)
OCR識別,一般是對灰度影象進行處理。
OCR識別的一般步驟如下:
1. 先進行定位校正
2. 分割,將各個字元斷開成不同的聯通域
3. 求交集(二值化後的影象區域 和 斷完之後的區域)
4. 排序,識別的時候按照順序來
5. 讀ocr分列器
6. 識別
7. 顯示
OCR識別的運算元:
//建立分列器
//使用多層感知器建立OCR分類器。
create_ocr_class_mlp
WidthCharacter:矩形的寬度,分割字元的灰度值被縮放到該矩形
HeightCharcter:矩形的高度,分割字元的灰度值被縮放到該矩形
Interpolation:用於縮放字元的插值模式
Features:用於分列的特徵
Charaters:要讀取的字符集的所有字元
NumHidden:MLP的隱藏單位數
Preprocessing:用於變換特徵向量的預處理型別
NumComponents:預處理引數:已轉換要素的數量
RandSeed:隨機數生成器的種子值,用於使用隨機值初始化MLP
OCRHandle:OCR分列器控制代碼
//訓練一個分列器
trainf_ocr_class_mlp
OCRHandle:OCR分列器控制代碼
TrainingFile:訓練檔案件名
MaxIterations:優化演算法的最大迭代次數
WeightTolerance:優化演算法的兩次迭代之間MLP的權重差異的閾值
ErrorTolerance:在優化演算法的兩次迭代之間MLP對訓練資料的平均誤差的差異的閾值
Error:MLP對訓練資料的平均誤差
ErrorLog:作為優化演算法的迭代次數的函式,MLP對訓練資料的平均誤差
識別
//使用OCR分類器對多個字元進行分類
do_ocr_multi_class_mlp
Character:要識別的字元
Image:字元的灰度值影象
OCRHandle:OCR分列器控制代碼
Class:使用MLP對字元進行分類的結果
Confidence:輸出字元分類的信心值
OCR識別流程會使用到的重要運算元:
//快速二值化
//前景和背景只有黑白,可以使用這個函式快速將黑白分開
binary_threshold
Image:輸入影象
Region:分段輸出區域
Method:分段方法
LightDark:提取前景還是背景
UsedThreshold:使用的閾值
//文字行角度的獲取
//確定文字行或段落的方向
text_line_orientation
Region:文字行區域
Image:輸入影象
CharHeight:文字行的高
OrientationFrom:文字行最小旋轉角度
OrientationTo:文字行最大旋轉角度
OrientationAngle:計算出來的文字行旋轉角度
使用指定寬度,切矩形
//將區域劃分為大小相等的矩形
partition_rectangle
Region:被劃分的區域
Partitioned:被劃分後的矩形
Width:單個矩形的寬
Height:單個矩形的高
//求交集
intersection
Region1:被求交集的區域1
Region2:被求交集的區域2
RegionIntersection:求交集的結果
//對區域排序
//根據區域的相對位置對區域進行排序。
sort_region
Regions:需要被排序的區域
SortedRegions:排序之後的區域
SortMode:排序的方法
order:遞增或者是遞減排序
RowOrCol:首先對行進行排序,然後對列進行排序。