s1091541 作業6

 

 主題: Run-Length Based Image Compression 練習

附件中為三張利用將晶片高度以色彩視覺化後的圖片。 請設計一個基於 Run-Length 的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。 部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率 (compression ratio)

開發環境:

  • windows11
  • Opencv 4.7.0
  • Visual Studio 2022 C++

 

程式碼說明:

1.    將讀入的圖像通過split()將其分為RGB三個通道並使用reshape()分別進行降維。

2.    接著對三個通道分別進行自定義的Run-Length Encoding

3.    將所有資料輸入到txt檔中,每個channel結束時輸入e

4.    使用stat()獲取檔案信息並計算壓縮率(原始檔案大小/壓縮後檔案大小)

5.    可另外撰寫Run-Length Decoding解壓縮檔案以確認是否成功壓縮,經過壓縮的圖像看起來應與原始圖像相同。

 

成果:

l   Image1:

                                                                

                                                      

l   Image2:



l   Image3:




平均壓縮率:2.19765

l   Txt檔中的內容(第一行為圖像的長與寬):



留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1091537 Homework #1