2021年6月6日 星期日

s1073341 影像處理作業6

 一、作業說明

附件中為三張利用將高度以色彩視覺化後的圖片。請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)


二、作業環境&語言

Windows 10

OpenCV 

c++


三、

實作方法使用cv2.imread() 和cv2.cvtColor() 

讀取原始圖片 建立輸出檔案.rle 

依序寫入圖片的高、寬、channel數量 

對圖片的RGB三個channel分別進行Run Length 壓縮,壓縮的同時寫入pixel值以及連續的數量,值的大小為1個byte,數量的大小為4個bytes 


將header的資訊個別讀出來

將三通道的run length 結果讀出來

將 bytes 轉回 int

將run length encoding 轉回 1維陣列

reshape 回圖片長寬

將b, g, r三通道合併成最後的結果




沒有留言:

張貼留言