一、作業說明
附件中的讀.row晶片設計的高度檔案,設計人員無法直接看到相關資訊。利用你所學的Color顏色的知識與處理技術,撰寫一個程式來讀取附件中的讀.row 檔案,將高度資料以圖片(顏色)視覺化呈現出來,讓設計人員可以看到高度相關資訊。
二、作業環境&語言
Windows 10
Visual Studio Code 1.54.3
Python 3.8.3
OpenCV 4.5.1.48
Numpy 1.19.5
三、實作方法與分析
以二元檔方式讀入raw檔
前32bytes 中 [4:8]bytes為width , [8:12]bytes為height , [12:16]bytes為channel
將width, height, channel 用 struct.unpack 轉成 int32
剩下的部分每4bytes為一個pixel的高度資訊,將其切割用struct.unpack轉成float
先將 invalid value -99999.0 設成 np.nan
找出除了invalid value 以外的最大值及最小值
將invalid value 換成 最小值
reshape成 (height, width, channel)
將所有高度資訊scale到 0~255
以灰階圖表示高度
將灰階圖對應至color map : jet ,以彩色圖表示高度 (藍~紅 = 低~高)
分析:opencv提供很多color map,選擇使人能輕鬆清楚的看出高度差別的color map很重要四、執行結果
02.bmp
灰階圖表示(黑~白 = 低~高)
彩色圖表示(藍~紅 = 低~高)
彩色圖表示(藍~紅 = 低~高)
10.bmp
沒有留言:
張貼留言