| 
參考 題型範例 - 全國高級中等學校技藝競賽平台 工業類 
題目:求二個簽名字元的相似度 
問題描述 
有一簽名字元為 BMP 的二元圖形(如圖 1),從 BMP 圖檔截出內容的部分(如圖 2),其中下圖 1 與下圖 2 上下方向相反,下圖中的每一個點以二元值表示之,0 表示黑及 1 表示白。我們可使用二個手寫的簽名字元的 BMP 圖形來做比對,比對時使用投影法及運算程序以求出它們的相似度。例如,求出的值為 0.52824,則二個簽名字元的相似度為 52.82%。
  
    
          
        圖 1 簽名字元
  
          
        圖 2 BMP 的二元圖形 
     | 
     | 
    
          
        圖 3 「工」字元
  
        水平投影 
          
          
        圖 4 「工」字元水平投影
  
          
        圖 5 「工」字元垂直投影
     |  
 
 
投影的原理: 
今有一「工」字元(圖 3),做水平投影,於 y 軸累積黑點點數(圖 4);做垂直投影,於 x 軸累積黑點點數(圖 5)。
  
運算的程序:  
求二個圖形的相似度時,在此使用投影法及相關運算程序如下: 
    - 對二個圖形的 x 軸及 y 軸分別做投影,x 軸及 y 軸各有 32 個元素。
 
    - 對二個圖形的 x 軸及 y 軸的每一個元素都做投影時,即是將其具有「0」(黑)的值做累加,即為其投影值,如圖 4 及圖 5 所示。
 
    - 將二個比對的圖形,其在相同座標的投影值相除可得該座標的相似度,x 軸及 y 軸均是。
 
    - 對 x 軸而言,x 軸各座標的相似度值加總,再除以座標元素的數目 32,即為二個圖形 x 軸的相似度;對 y 軸亦然。
 
    - 將 x 軸的相似度與 y 軸的相似度相乘,即為二個圖形的相似度。
 
 
提示: 
    - 為避免相除時分母為 0,x 軸及 y 軸的每一個元素的投影初始值都預設為 1。
 
    - 在相同座標的二個投影值相除的相似度最大為 1 (100%)。 
 
 
執行程式:
例 1 :使用二個字元比較 
 
     |  |   |   |  
     | 輸入:檔案「南 1.txt」及「南 2.txt」 執行結果:列印如圖 6。 |  
  
例 2 :使用二個字元比較 
     |  |  |  |  |  |  
     |   |   |  
     | 輸入:檔案「南 1.txt」及「南 3.txt」 |  
     | 執行結果: | 步驟 4,求平均相似度:垂直投影:0.842,水平投影:0.863 步驟 5,2 字元相似度:0.72676 |  
  
例 3 :使用二個字元比較 
     |  |  |  |  |  |  
     |   |   |  
     | 輸入:檔案「南 2.txt」及「南 3.txt」 |  
     | 執行結果: | 步驟 4,求平均相似度:垂直投影:0.729,水平投影:0.710 步驟 5,2 字元相似度:0.51764 |  
  
例 4 :使用二個字元比較 
     |  |   |   |  
     | 輸入:檔案「三 1.txt」及「三 2.txt」 執行結果:列印如圖 7。 |  
  
例 5 :使用二個字元比較 
     |  |  |  |  |  |  
     |   |   |  
     | 輸入:檔案「川 1.txt」及「川 2.txt」 |  
     | 執行結果: | 步驟 4,求平均相似度:垂直投影:0.838,水平投影:0.909 步驟 5,2 字元相似度:0.76198 |  
 
 
| 圖 6  |   |  (南 1.txt)  |   |  (南 2.txt) 比對相似度的過程  |   
 
| 圖 7  |   |  (三 1.txt)  |   |  (三 2.txt) 比對相似度的過程  |   
 |