1. 作業說明:
- 設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案,並計算三張圖的平均壓縮率。
2.開發環境:
- Windows 10
- Visual Studio 2019
- OpenCV3.4.6
- C++
3.實作方法:
將讀入的圖片使用split()把三個channel分離並存入vector
將分離出的三個cahnnel從二維降成一維,也將其分別存入不同vector
對每個一維的陣列個別做Run-length encoding
最後輸出到同一個dat檔中,將每一個 channel的資訊分別做區隔
第二部分將壓縮後的檔案在解壓縮
讀入dat檔,將每個channel個別存取
Mat一張新的圖片並讀取的資訊填入每個pixel得到無失真的影像
用resize()去調整輸出圖片的大小
最後分別去計算壓縮率(原圖大小/壓縮檔大小)和平均壓縮率
4.執行結果:
輸出圖片:
沒有留言:
張貼留言