s1081402 作業6

開發環境:Python 3.9.13, macOS 13.2.1, OpenCV 4.7.0

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

說明:

首先,讀取照片並使用split()函數將其分離為R、G、B三個通道。並將每個通道轉換為NumPy數組,並將數據展平為一維數組。

得到了展平後的R、G、B通道數組(r_data、g_data、b_data),可以使用RLE算法對這些數組做encode進行壓縮。

再將壓縮後的數據做decode,並取得原圖的圖片長寬,最後再將decode後的數據重新組合成圖片並轉成PIL圖片儲存。

最後,輸出圖片大小並計算平均壓縮量。



split function





encode/decode function

成果:

img1.bmp:14665254
image_out1.jpg:124927
壓縮率:0.8518570493221597%

img2.bmp:14665254
image_out2.jpg:133195
壓縮率:0.9082352068365129%

img3.bmp:14665254
image_out3.jpg:139285
壓縮率:0.9497619338880868%



留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1081444 Homework #7