作業題目:
附件中為三張利用將高度以色彩視覺化後的圖片。
請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。
部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)。
使用環境:
Windows 10
Python 3.9.2
opencv-python 4.4.0
numpy 1.20.1
實作方法:
加壓
1. 使用imread()讀圖片 2. 將圖片的資訊先讀出來(height,width) 3. 分別將RGB值分開存起來
4.再透過rle.encode()將RGB分別的list進行處理
5.處理完後寫成.3511檔分別寫入檔案名稱高度長度再來就是處理過後的RGBlist
5.處理完後寫成.3511檔分別寫入檔案名稱高度長度再來就是處理過後的RGBlist
6. 儲存
解壓
1. 使用open()讀檔案 2. 將圖片的資訊分別讀出來(檔案名稱,height,width) 3. 接著在使用迴圈將RGB進行rle.decode()
4.建立一張全白圖
5.將處理過後的RGBlist 覆蓋至全白圖上
5.將處理過後的RGBlist 覆蓋至全白圖上
6. 完成輸出
執行結果:
img1壓縮率 : 7.69/13.9 ~= 0.55
平均壓縮率 = (0.55+0.94+0.51)/3 = 0.66
沒有留言:
張貼留言