2021年6月5日 星期六

s1071536 影像處理作業6

   一、作業說明 

附件中為三張利用將高度以色彩視覺化後的圖片。

請設計一個基於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,並比較之間的差異

四、執行結果

Average compression ratio = (6.642+4.041+6.967)/3 = 5.883

img1.bmp_compression ratio: 6.642

img2.bmp_compression ratio: 4.041

img3.bmp_compression ratio: 6.967

沒有留言:

張貼留言