s1091402 作業6
題目敘述
Run-Length Based Image Compression 練習
附件中為三張利用將晶片高度以色彩視覺化後的圖片。
請設計一個基於Run-Length 的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。
部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率
(compression ratio)。
開發環境
Windows10、Spyder (Python 3.8)、OpenCV 4.7.0
說明
1. 讀入圖檔,並輸出檔案大小
2. cv2.split(image)將圖片分成b、g、r三個通道
3. 分別將flatten()將b、g、r存成一維陣列
4. rle_encode函式處理基於Run-Length的壓縮法方法,即用連續出現的次數取代連續重複的數據,例如:[1, 1, 1, 2, 2, 3, 3, 3, 3]->[3, 1, 2, 2, 4, 3]。
5. 生成.txt檔案,寫入圖像的長寬尺寸(image.shape[])以及壓縮數據,並輸出壓縮檔之檔案大小
6. 計算平均壓縮率
壓縮檔及原圖
各檔案之原始大小、壓縮後大小、壓縮率
以及平均壓縮率
留言
張貼留言