s1091433 作業6

 主題:Run-Length Based Image Compression 練習

請設計一個基於Run-Length 的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。開發環境: MacOS + VScode+ OpenCV 4.5.4+python

1.         cv2.split()分離圖片的bgr三通道並先用flatten()轉換成1d array,對他們分別做壓縮


2.         RLE壓縮:從頭開始掃描整個array,如果當前的點跟前一個點的數值一樣count++,不一樣就在encode_data中寫入紀錄的count跟點的資料,兩個為一組數據做儲存


3.         encode_datasavez_compressed()存成一個.npz壓縮檔


4.         還原壓縮檔只要把compress過程反著做就可以,把點的數值照著有幾個count寫回去即可


5.         壓縮結果




6.         壓縮率(原文件/壓縮後)
img1:14665254/1504995=9.7443812
img2:14665254/2292707=6.39647979
img3:14665254/1429634=10.2580479

留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6