2021年6月6日 星期日

s1071534 影像處理作業6

一、作業說明 

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

請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)


二、作業環境

●    Windows 10
●    Python 3.6
    opencv 4.2.0

三、實作方法

Compress
1.讀入圖片(.bmp)
2.將圖片的BGR分別提取成三個陣列
3.將每個陣列展開成一維(為了加速處理時間)
4.對每個陣列做run length壓縮資料提取
5.將壓縮資料合併,且加上檔案頭(圖片長度,圖片寬度,BGR個別的資料個數)
6.寫出壓縮檔(.omniMan)

Decompress
1.讀入壓縮檔案(.omniMan)
2.讀取檔案頭
3.依照表頭的資料讀取BGR的資料
4.依照壓縮資料重新組成原圖片
5.輸出圖片


四、執行結果

平均壓縮率 = (6.642+4.041+6.967)/3 = 5.883

五、確認圖片無損
使用imagehash.average_hash()取得原圖片與解壓縮圖片的hash值
img1.bmp


img2.bmp


img3.bmp




沒有留言:

張貼留言