s1091707 作業6
作業說明: 請設計一個基於 Run-Length 的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。 部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率 (compression ratio)。 執行環境: windows11 Opencv 4.6.0 Python 3.10.2 Vscode 實作方法: 將原本圖檔的資訊,如:寬高、bgr三顏色通道的資料用run-length壓縮儲存至成 容量較小的txt檔。 壓縮: 用shape紀錄寬高,再存進txt裡 用split分割出bgr三通道顏色向量資訊 將長寬大小的二維bgr向量flatten成一維,之後比較好計算 開始run-length,將連續同樣像素出現次數以及該像素值存進txt 程式實作方式 txt壓縮檔裡儲存的資訊 從txt檔還原成圖檔: 先將txt檔中紀錄的連續同樣像素出現次數用for迴圈遞迴,再append像素值至新的list裡 利用txt檔中的第1、2row長寬資訊,將新list reshape回二維 再用merge函式還原成圖片檔 計算壓縮率: 用os標準函式庫內建函數getsize得到檔案大小計算壓縮率,最後再三個相加除三算平均 執行結果: 三張圖及平均壓縮率: