作業說明:
請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。
使用環境/語言:
- Windows10
- Visual Studio 2019
- Opencv-4.3.0
- C++
實作方法:
- 主要有兩個檔案紀錄圖片的資訊:ColorDatabase.txt、ImageColor.txt
- 程式會將圖片出現過的顏色記錄起來,而且每種顏色都會對應到一組ID,並將這些資訊存進ColorDatabase.txt。
- 程式會紀錄圖片中的不同顏色出現的狀況,並將值存到ImageColor.txt。
- 舉例:假設圖片第一列的pixes分別是:白白黑紅,由於在ColorDatabase.txt中,白色是代表0號,黑色代表1號,紅色代表2號,因此在ImageColor.txt中紀錄的格式會是:0:2 1:1 2:1,這代表在第一列中,白色連續出現2次,緊接著黑色出現1次,再來紅色會出現1次。
- 程式壓縮圖片時,會產生ColorDatabase.txt 和 ImageColor.txt紀錄圖片資訊。
- 圖片壓縮率的計算方式:(圖片byte數) / [(ColorDatabase.txt 的byte數)+(ImageColor.txt的byte數)]
沒有留言:
張貼留言