2022年6月1日 星期三

s1071805 作業6

 

 

一、作業說明

附件中為三張利用將晶片高度以色彩視覺化後的圖片。

請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。

部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)

 

二、開發環境

Windows 10

Anaconda Jupyter Notebook 6.4.11

OpenCV 4.5.5

Python 3.7.13

 

三、實作方法

1.input的方式輸入檔案名稱且得到檔案的大小


2.接著讀取圖片求出長 寬和channel



3.把不重複的顏色(B,G,R)新增到tmp



4.dictionary的方式將tmp裡面的color編號

{ key: value } -> { color id: [B,G,R] }



5.之後把所有的color數量顯示出來



6.儲存原本img(B,G,R)經過get_key()轉換後的color id

7.自定義一個run_length_encoding()function來計算

8.執行完run_length_encoding()的結果都寫到原檔名.txt的檔案中


9.計算壓縮檔的檔案大小 get_ratio()就可以算出壓縮率

10.
當三張圖片都分別產生壓縮檔後就可以執行get_average()



 

四、執行結果







沒有留言:

張貼留言