s1093352 作業6
Run-Length Based Image Compression 練習
附件中為三張利用將晶片高度以色彩視覺化後的圖片。
請設計一個基於Run-Length 的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。
部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率
(compression ratio)。
開發環境: Window 10 + Visual Studio 2019 + OpenCV 3.4.1
- imread() 讀取圖片
- 建 vector 來存放資訊
- vector[0] 和 vector[1] 分別存放圖片的 rows 和 cols
- 接著透過兩個 for 迴圈還有 at 來跑遍整張圖 pixel 的 rgb
- run length encoding 一次比對rgb三個顏色 , rgb 相同 length 加1 , 不同就放進vector
- 存放資訊一次存四個分別為 b g r 和 length
- 最後透過 ofstream 把 vector 寫入 bin 檔
- 解壓縮透過讀取 rows cols 來建圖, length 和 cols 比對來確認是否換行
- ifstream開啟檔案並透過 tellg() 來計算大小
- 輸出compression ratio
成果:
留言
張貼留言