第五章 字元切割與辨識
5.2 字元特徵
41
會出現破折號在二值化與過濾雜訊的過程被過濾掉,或是破折號投影到 x 軸上的 數量太少,以至於無法正確切割的情形,如圖 5.11。針對這種情況,我們有必要 加以修正結果。
圖 5.11 破折號無法被正確切割的情形。
由於破折號只會出現在第二個和第三個字元之間,或是第四個和第五個字元 之間,所以我們比較初步分割時第二到第五個字元的寬度,擁有最大的寬度的字 元,就是有可能包含破折號的字元。
如果寬度最大的字元是第二個,那麼破折號就在第二個字元的右端,如果寬 度最大的字元是第三個,那麼破折號就在第三個字元的左端,如果寬度最大的字 元是第四個,那麼破折號就在第四個字元的右端,如果寬度最大的字元是第五 個,那麼破折號就在第五個字元的左端。我們可以根據字元區域的高度,給定一 個適當的補償大小。圖 5.12 即為破折號消失修正後的字元切割結果。
圖 5.12 破折號消失修正後的字元切割結果。
用樣板比對法等需要統一大小的字元的辨識方法,但是字元特徵辨識法不會受到 字元大小的影響,所以本研究採用字元特徵辨識法來進行字元辨識的工作。
5.2.1 字元細化處理
細化[17]是形態處理的一種演算法。細化被使用在許多的應用中,尤其是在 骨架化(Skeletonization)的應用裡面最有用。在骨架化的應用中,細化經常用來處 理邊界偵測後的結果,讓最後的結果變成只剩下一個像素的寬度。細化演算法通 常僅適用在二值化影像中,因為我們必須給定一個明確的物件和背景,才能將物 件進行細化處理。
細化必須受到下列四個限制:
(1) 約略的端線位置必須保存。
(2) 連接的部分不能中斷。
(3) 相連的區域必須被細化成相連的線。
(4) 細化後的圖形,其骨架必須近似物體的中線(medial lines)。
本研究所使用的細化演算法是利用 T. Z. Zhang 及 C. Y. Suen 細化規則。細化 演算法使用八鄰近指定方式,其矩形遮罩如圖 5.13 所示。
圖 5.13 細化演算法所使用的 3x3 矩形遮罩。
A. 當下述四個條件都成立時,則刪除(亦即讓所代表像素之像素值變成 0),
43
此步驟之主要作用是要將位於左上角、右邊及下面的像素侵蝕掉。
(1) 計 算 P 到2 P 個 像 素 點 , 如 值 為 1 則9 N
P1 之 值 累 1 , 亦 即9 3
2
1 P P P
P 。
如果 2N
P1 6,則條件成立。(2) 由P2 P3 P4 P8 P9 P2成一循環,當像素由 0 變成 1 時,
則將S
P1 之值累加 1。如果S
P1 =1,則條件成立。(3) P2P4 P6 0。 (4) P4 P6P8 0。
B. 當下述四個條件都成立時,則刪除(亦即讓所代表像素之像素值變成 0),
此步驟之主要作用是要將位於右下角、左邊及上面的像素侵蝕掉。
(1) 同步驟 A1。
(2) 同步驟 A2。
(3) P2P4P8 0。 (4) P2P6P8 0。
圖 5.14 細化範例。
圖 5.14 為以一個寬度為三個像素的「H」字形為例,其中圖(a)為原始圖形;
圖(b)為 H 字形經過步驟 A 細化的結果;圖(c)為圖(b)經過步驟 B 細化的結果;
圖(d)為圖(c)再次經過步驟 A 細化的結果;圖(e)為圖(d)再次經過步驟 B 細化的結 果。
5.2.2 擷取字元特徵值
經過細化演算法的計算後,字元會被細化成寬度只有一個像素的骨架形式,
而且仍然保有該字元最基本的結構,此時,我們就可以從這些字元結構中找出它 的特徵並進行分類。本研究採用的方式是階層式字元辨識,針對每一個字元的結 構進行分析,並根據字元的節點特徵值、節點方向性編碼集結點四角定位編碼,
並配合各節點在四個象限的位置來判定,最後即可將影像中的字元辨識出來。
本研究主要是利用 skeleton revision algorithm[18]來定義節點特徵,節點特徵 分為端點、三叉點及四叉點,如圖 5.15 所示。
圖 5.15 節點類型。
我們利用一個 3×3 的矩形遮罩,將細化後的字元影像掃描一次,然後以 P 為中心點,計算周圍八個像素中與 P 點具有同樣像素值的個數,如此便可得到 各字元的結構特徵。雖然理論上會有四叉點的存在,但是實際上執行過細化後的 影像,幾乎不會出現四叉點,通常接近互相垂直的兩條直線在細化過程中會變成 兩個三叉點。
由於受到各種因素的影響,某些字元在細化後的結構特徵不會只有一種。各 個字元的節點類型總數整理如表 5.1 所示。
45
表 5.1 節點類型總數。
字元 端點 三叉點 四叉點
1
2 0 0
3 1 0
2 2 0 0
3
2 0 0
3 1 0
4
2 3 0
3 4 0
5
2 0 0
3 1 0
6 1 1 0
7 2 0 0
8 0 2 0
9 1 1 0
A 3 3 0
B 0 2 0
C 2 0 0
D 0 0 0
E 3 1 0
F 3 1 0
G 2 0 0
H 4 2 0
I
2 0 0
3 1 0
J 2 0 0
K 4 2 0
L 2 0 0
M 5 3 0
N 4 2 0
O 0 0 0
P 1 1 0
Q
0 3 0
1 3 0
R 2 2 0
S 2 0 0
T 3 1 0
U 2 0 0
V 3 1 0
W 4 2 0
X 4 2 0
Y 3 1 0
Z 2 0 0