一、作業說明
附件中為三張利用將高度以色彩視覺化後的圖片。
請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)。
二、作業環境
● Windows 10
● Python 3.7.10
● opencv 4.2.0
● imagehash 4.2.0
三、實作方法
Compress
1.讀入圖片(.bmp)
2.將圖片的BGR三個channel分離(2D Array)
3.將各自channel資料flatten後(2D->1D)再合併成1D Array
4.使用RLE壓縮演算法將1D資料壓縮並寫入bin file中
Decompress
1.讀入壓縮檔案(.bin)
2.逆著RLE壓縮演算法的步驟得到壓縮前1D的資料
3.將1D資料分成BGR channel(1D Array)
4.將RGB channl各自資料reshape成2D後再merge成3D
5.輸出圖片
Verification
1.讀入原本的圖片以及解壓縮後的圖片
2.使用imagehash 對圖片hash,並比較之間的差異
四、執行結果
沒有留言:
張貼留言