2021年6月6日 星期日

s1071431 的作業 6

 作業題目:

基於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

沒有留言:

張貼留言