s1081523 作業6
作業說明:
離散傅立葉轉換 DFT練習
Run-Length Based Image Compression練習
附件中為三張利用將晶片高度以色彩視覺化後的圖片。
請設計一個基於Run-Length的壓縮方法,對圖檔作無失真壓縮後儲存成新檔案。
部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)。
開發環境:
· Windows 10
· Visual Studio
2019
· OpenCV 4.5.5
· Python 3.10
實作方法:
1. 先用imread()讀取圖片。
2. 然後將圖片的b,
g, r轉換為一維陣列
3. 根據Run-Length壓所方法,進行編碼,分別算出b, g, r的壓縮率再做平均
4. 寫成txt檔匯出(我的電腦怪怪的,有303800筆資料它輸出到26萬多就會自己斷掉,導致後面list out of index),故我先不做寫出讀入檔案,而是以原本存好的list再做解壓縮。
5. 利用reshape把原圖的長寬值取出並重新輸出成圖片,並算出三張圖平均壓縮率。
執行結果:
平均壓縮率是7.2757002973%
作業說明:
離散傅立葉轉換 DFT練習
Run-Length Based Image Compression練習
附件中為三張利用將晶片高度以色彩視覺化後的圖片。
請設計一個基於Run-Length的壓縮方法,對圖檔作無失真壓縮後儲存成新檔案。
部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)。
開發環境:
· Windows 10
· Visual Studio
2019
· OpenCV 4.5.5
· Python 3.10
實作方法:
1. 先用imread()讀取圖片。
2. 然後將圖片的b,
g, r轉換為一維陣列
3. 根據Run-Length壓所方法,進行編碼,分別算出b, g, r的壓縮率再做平均
4. 寫成txt檔匯出(我的電腦怪怪的,有303800筆資料它輸出到26萬多就會自己斷掉,導致後面list out of index),故我先不做寫出讀入檔案,而是以原本存好的list再做解壓縮。
5. 利用reshape把原圖的長寬值取出並重新輸出成圖片,並算出三張圖平均壓縮率。
執行結果:
平均壓縮率是7.2757002973%
平均壓縮率是12.1327428197
平均壓縮率是6.94958132177
三張圖平均壓縮率是8.78600814626
沒有留言:
張貼留言