s1091404 作業6

 主題: Run-Length Based Image Compression 練習

附件中為三張利用將晶片高度以色彩視覺化後的圖片。 請設計一個基於 Run-Length 的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。 部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率 (compression ratio)。

開發環境: Window 10, python 310, Opencv 4.5.4, visual studio code

功能說明:

使用以下函式庫進行撰寫

1. 首先分別將img1, img2, img3讀入,由於圖片大小會引響到程式的執行速度,因此將這三張圖片的大小重新調整為(720, 480)
 


img1

img2

img3



2. 對三張圖片使用Run-length Compression,程式碼撰寫於function compress中,compress的參數分別代表輸入圖片、圖片號碼、平均壓縮率(mean)。

在function compress中,先將原圖轉換成灰階,接著再去偵測灰階圖每個pixel的灰度,使用for迴圈去實現Run-Length Compression的運作,偵測連續的相同灰度值。image1儲存灰階圖每個pixel的灰度值,而image3則是儲存壓縮過後的灰度值。

跑完Run-Length Compression後將image1和image2分別存為txt文件檔,方便觀察壓縮過後檔案的大小差異,同時計算出壓縮率。

儲存txt文件檔前
儲存txt文件檔後
compress會返回每張圖的壓縮率,方便之後計算平均壓縮率mean,mean會顯示在visual studio code的terminal












留言

這個網誌中的熱門文章

rzwang Homework #1

s1101438 Homework #1

s1093309 作業6