s1093352 作業6

 Run-Length Based Image Compression 練習

附件中為三張利用將晶片高度以色彩視覺化後的圖片。
請設計一個基於Run-Length 的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。
部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率
(compression ratio)。

開發環境: Window 10 + Visual Studio 2019 + OpenCV 3.4.1


  1. imread() 讀取圖片
  2. 建 vector 來存放資訊
  3. vector[0] 和 vector[1] 分別存放圖片的 rows 和 cols
  4. 接著透過兩個 for 迴圈還有 at 來跑遍整張圖 pixel 的 rgb
  5. run length encoding 一次比對rgb三個顏色 , rgb 相同 length 加1 , 不同就放進vector 
  6. 存放資訊一次存四個分別為 b g r 和 length
  7. 最後透過 ofstream 把 vector 寫入 bin 檔

  8. 解壓縮透過讀取 rows cols 來建圖, length 和 cols 比對來確認是否換行
  9. ifstream開啟檔案並透過 tellg() 來計算大小
  10. 輸出compression ratio
成果:





留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6