| 
參考 題型範例 - 全國高級中等學校技藝競賽平台 工業類 
題目:局部編碼  
問題描述 
局部編碼有許多應用,局部編碼 (C) 是在一個資料區域內,利用相鄰鄰居和不同權重,來進行編碼。局部編碼可以利用下述公式來表示:
 
其中,dc是在區域(R)中的中心點( Xc,Yc )之資料,是區域中心點之I 個鄰居資料點,di - dc 表示鄰居資料點與中心點之差,2i是鄰居資料點之對應權重,T(x) 是一閥值函數,當 x 大於等於0時,T(x) = 1 ,當 x 小於 0 時,T(x) = 0。
程式功能:請利用上述公式 (1) 和公式 (2) ,寫一個程式,能完成以下功能之要求:
(1)能讓使用者輸入 6×6 資料,這些資料要大於等於 0 , 不可以小於 0。
(2)能讓使用者輸入 3×3 權重,這些權重是 2 的次方。
(3)能讓使用者輸入要編碼之 3×3 區域的左上角座標。
(4)程式可以計算和顯示要編碼之 3×3 區域的編碼結果。
程式執行範例:
 
範例說明:從上圖左邊開始,第 1 步讓使用者輸入 6×6 資料,第 2 步讓使用者輸入 3×3 權重,第3步讓使用者輸入要編碼之 3×3 區域的左上角座標,座標請參考輸入資料之座標(0~5,0~5),第 4 步按計算執行,第 5 步顯示編碼結果。
 
    | 上述範例,權重遮罩設定為  |   |  輸入要編碼之 3×3 區域的左上角座 |  
 
    | 標為(1,1),也就是要對輸入區域資料  |   |  進行編碼。再利用公式(2) |  
 
    | 運算後,其結果為  |   | 。再利用公式 (1) 運算後,其編碼結果為 201,如 |  
 
上圖所示。
完成後影片 
  
程式碼下載(GitHub)      程式碼下載(本地)
 Microsoft Visual Studio Community 2022 (64 位元) - Current 版本 17.8.1 
 |