2021年6月7日 星期一

1071215 影像處理作業6

作業說明:

附件中為三張利用將高度以色彩視覺化後的圖片。請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。

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

開發環境:

Window 10、Anaconda Navigator 2.0.1、Spyder 5.0.0、OpenCV 4.0.1

程式說明:

rle_輸出.py:

  1. 用imread()讀取圖片
  2. 以 split()切分成r,g,b通道
  3. 用flatten()將r,g,b轉成1維陣列
  4. 利用Run-Length計算,依序以(數值,個數)的方式存入list
  5. 分別將r,g,b的list各自串接,存成.dat檔。

rle_還原.py:

  1. 以opem()讀取.dat檔
  2. 將r,g,b資訊存入list
  3. 利用Run-Length計算解碼還原
  4. 以np.array()將list轉換成uint8存入array
  5. 用reshape()將array轉成(height, width, channel)
  6. 用merge()將r,g,b合併成圖片
  7. 以imwrite()將結果輸出。

程式執行畫面及結果:

Img1壓縮率:7.7/13.9*100% = 55.40%



原圖


壓縮後的圖

Img2壓縮率:13.1/13.9*100% = 94.24%



原圖

壓縮後的圖

Img3壓縮率:7.14/13.9*100% = 51.37%



原圖


壓縮後的圖

 



沒有留言:

張貼留言