作業說明
附件中為三張利用將晶片高度以色彩視覺化後的圖片。
請設計一個基於Run-Length的壓縮方法,對圖檔作無失真壓縮後儲存成新檔案。
部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)。
開發環境
·
Windows 11
·
Visual Studio Code
·
Anaconda 4.11.0
·
OpenCV 4.5.5
程式說明
def RLE_encoding(img, bits=8, binary=True, view=True):
獲取每個通道並將其視為灰度圖像並在其上應用 RLE。
將圖像轉換為二進製或按原樣使用。
然後將圖像轉換為平面,即一維向量。
從左到右掃描。
如果先前的值與當前值相同,則計算運行,否則附加(value, run)在編碼上。並且還要檢查運行長度,即如果它變成2**bits - 1然後附加它。如果它超過該值,那麼我們的值將在稍後四捨五入到
8 位範圍。
執行結果:
平均壓縮率:
TIFF: 9.875182079629367
NPZ: 1.470892777801373
沒有留言:
張貼留言