2022年6月1日 星期三

s1083304作業6

 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

                                

img1 encode -> decode

img2 encode -> decode


img3 encode -> decode



沒有留言:

張貼留言