作業說明:
附件中為三張利用將高度以色彩視覺化後的圖片。請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。
部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)。
操作環境:
window10
python 3.6
pycharm
openCV 4.5.2.52
程式說明:
Encoding:
1.imread()讀取圖片
2.split()切成rgb通道
3.flatten()將rgb轉成1D
array
4.利用Run-Length編碼
5.分別將rgb的list串接起來且前五項存起來
6.輸出list成img_compress.2036
Decoding:
1.open()讀取.2036
2.將rgb資訊分別存入list
3.利用Run-Length的方式解碼
4.np.array()將list轉成array並改為uint8
5.reshape()將array轉成(height,
width, channel)
6.merge()將rgb合併成img
7.imwrite()輸出
執行結果:
壓縮率:8,074,099/14,665,254=0.55
壓縮率:7,488,796/14,665,254=0.51
沒有留言:
張貼留言