2021年5月18日 星期二

s1071441 影像處理作業5

 一、作業說明

附件中的讀.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


灰階圖表示(黑~白 = 低~高)
彩色圖表示(藍~紅 = 低~高)

08.bmp
灰階圖表示(黑~白 = 低~高)
彩色圖表示(藍~紅 = 低~高)

10.bmp

灰階圖表示(黑~白 = 低~高)



沒有留言:

張貼留言