2022年6月2日 星期四

s1081515 作業6

 

s1081515 作業6

 作業說明:

  • 請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案,並計算三張圖的平均壓縮率

開發環境:

  •       Window10   
  •       Microsoft Visual Studio 2019
  •       C++
  •       OpenCv 4.5.5

程式說明:

    Encode:

        1.將讀入的圖片使用split()把三個channel分離並依序存入個別的               vector中

        2.接下來將分離出的三個cahnnel從二維改降成一維,也將其                  入不同vector之中

        3.對每個一維的陣列個別做Run-length encoding(RL)

        4.最後將其輸出到同一個.dat檔中,開頭會列出該圖的長寬(pixel)              每一個 channel的資訊都分別用"end"做區隔

    Decode:

        1.將壓縮後的.dat檔讀入

        2.將每個channel中的資訊個別存取

        3.Mat一張新的圖片並將讀取的資訊依序填入每個pixel得到沒有失               真的圖像

    計算壓縮率:

        1.使用stat()函式來取得檔案的資訊

        2.計算 壓縮率 = 原圖大小/壓縮檔大小

        3.輸出計算結果

執行結果:

                                        解壓縮後得到的結果

壓縮率:
檔案資訊:
.dat檔之內容
(第一行為此圖的長寬(pixel))





















沒有留言:

張貼留言