作業題目:
基於Run-Length的壓縮方法,對圖檔進行無失真壓縮後儲存成新檔案。
並計算圖片的平均壓縮率
壓縮率:
第一張圖 4.47MB / 13.9MB = 32%
第二張圖 7.74MB / 13.9MB = 55%
第三張圖 4.07MB / 13.9 MB = 29%
三張平均壓縮率 38%
實作方法 :
先將圖片大小長寬讀出
存入List
再將圖片有的顏色設計成對應的數字存成Dict
接著計算有多少顏色相鄰,且記住顏色,遇到不同顏色時,
把上一次計算的顏色數量與顏色存入List,計算方法從圖片最左上角
往右數,到底時在換下一行
最後再將Dict存入List
ex : [2020(高),2048(寬),數量,顏色,數量,顏色, ...... ,Dict]
使用python 內建 pickle 將儲存資料變數以二元檔方式輸出
--------------------------------------------------------------------------------------
還原為原始圖片
分析:
第二張的壓縮率不太好,也許可能個別更換算相鄰顏色的方法,也許可以更好,
從原本的水平計算方式,換成垂直等等....
開發環境:
windows 10
visual code
python 3.7.10
opencv-python 4.1.1.26
numpy 1.16.4
沒有留言:
張貼留言