2021年6月6日 星期日

s1071222 影像處理作業6

  1. 作業說明:
    • 請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio) 
  2. 使用環境:
    • Anaconda
    • python 3.8.8
    • opencv 4.5.2
    • numpy 1.20
  3. 實作方法:
    • 壓縮:
      • 將B,G,R分開
      • 分別以reshape()成一行
      • 使用RLE方式對B,G,R做壓縮
      • 將壓縮好的資料以{height,width,{數量1,字元1},{數量2,字元2}...}的方式儲存到一個檔案(ex:img1.bmp.encode)
    • 解壓縮:
      • 讀取height,width和B,G,R資料
      • 將B,G,R個別reshape成(height,width)的array
      • 以cv2.merge()結合B,G,R
      • cv2.imshow得出原圖
  4. 執行結果:

    bmp1解壓縮後的還原圖(壓縮率:42%%)
    bmp2解壓縮後的還原圖(壓縮率:3%)
    bmp3解壓縮後的還原圖(壓縮率:45%)

  5. 平均壓縮率:42% + 3% + 45% = 30%

沒有留言:

張貼留言