參考 題型範例 - 全國高級中等學校技藝競賽平台 工業類

題目:局部編碼


問題描述
局部編碼有許多應用,局部編碼 (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