1. 作業說明:
- Run-length Based Image Compression練習
設計一個基於Run-Length的壓縮方法,對彩色圖檔作無失真壓縮後,存成新檔案。
2. 開發環境:
windows11
opencv-python 4.5.5.64
3. 流程:
*需要將圖片與程式碼放在同一個資料夾中*
我使用for迴圈用一樣的流程處理三張圖片。(三張圖片的路徑存在一個list中)
首先用split將RGB通道分開後,用遍歷跑過所有像素,針對每個像素的rgb值做紀錄:
計算的部分我寫成了函式calculate,演算法是:參數會傳入計數器、目前像素的某channel值、上一個值、紀錄壓縮資料的list。
如果目前值和上一個值一樣,計數器就+1;如果不一樣,就把計數器和上一個值寫入紀錄的list,然後上一個值=目前的值,計數器回歸1,如此遍歷每個像素。
最後先將圖片的資料寫入檔案,再將壓縮後的bgr三通道的值分別寫入(我順序是用bgr)。
用Path("檔案路徑").state().st_size取得檔案大小
沒有留言:
張貼留言