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檔中的內容(第一行為圖像的長與寬):
留言
張貼留言