1. 作業說明
附件中為三張利用將晶片高度以色彩視覺化後的圖片。
請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。
部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)。
2.開發環境
Windows 10
Visual Studio Code 1.64
OpenCV 455
3. 實作方法
encode.py:
1. 讀入圖片後,用split()分離BGR通道,並使用flatten()將各通道一維化。
2. 自訂一個 RLEencode() 對各通道做壓縮,頭兩個資料存原圖長寬h,w,主要格式為(重複出現次數,數值),ex:[ 0 0 0 0 0 1 1 4 4 4 ] -> [ 5 0 2 1 3 4 ] ,各通道用 'b' , 'g' , 'r' 分離辨別。
3.最後計算出 compress ratio 和 average compress ratio
decode.py:
1.open txt and read
2.照重複出現次數和數值復原BGR。
3.分別把BGR list 照原圖h,w reshape(),用 astype() 設定為 uint8
4.將三通道 merge() 起來,得到原圖。
4. 執行結果
壓縮檔格式
頭
尾
compression ratio
沒有留言:
張貼留言