2021年6月7日 星期一

1071215 影像處理作業6

作業說明:

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

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

開發環境:

Window 10Anaconda Navigator 2.0.1Spyder 5.0.0OpenCV 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,blist各自串接,存成.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%



原圖


壓縮後的圖

 



沒有留言:

張貼留言