2022年6月1日 星期三

s1081542 作業6

 

作業說明:

請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。

使用環境/語言:

  • Windows10
  • Visual Studio 2019
  • Opencv-4.3.0
  • C++

實作方法:

  1. 主要有兩個檔案紀錄圖片的資訊:ColorDatabase.txtImageColor.txt
  2. 程式會將圖片出現過的顏色記錄起來,而且每種顏色都會對應到一組ID,並將這些資訊存進ColorDatabase.txt
  3. 程式會紀錄圖片中的不同顏色出現的狀況,並將值存到ImageColor.txt
  4. 舉例:假設圖片第一列的pixes分別是:白白黑紅,由於在ColorDatabase.txt中,白色是代表0號,黑色代表1號,紅色代表2號,因此在ImageColor.txt中紀錄的格式會是:0:2 1:1 2:1,這代表在第一列中,白色連續出現2次,緊接著黑色出現1次,再來紅色會出現1次。
  5. 程式壓縮圖片時,會產生ColorDatabase.txt 和 ImageColor.txt紀錄圖片資訊。
  6. 圖片壓縮率的計算方式:(圖片byte數) / [(ColorDatabase.txt 的byte數)+(ImageColor.txt的byte數)]

執行方式/畫面:

壓縮率:

image image image image

解壓縮的結果:(非原圖比例,原圖太大)

image image image

檔案資訊:

image image image image image

影片:



沒有留言:

張貼留言