s1091533 作業6
作業6說明
題目:
附件中為三張利用將晶片高度以色彩視覺化後的圖片。 請設計一個基於 Run-Length 的壓縮方法,對圖檔作無失真壓縮後儲存成新檔案。 部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率 (compression ratio)。
開發環境:
Windows 10 + Visual Studio Code + OpenCV 4.7.0 + Python
程式說明:
1.編碼: run_length_encode()
Run-Length 的編碼方法:
有一序列[1,1,2,2,2,3,3,3,3,4],用 Run-Length 的壓縮方法進行壓縮,結果為[(1,2),(2,3),(3,4),(4,1)],表示序列有連續兩個1,連續三個2,連續四個3,連續一個4。
2.解碼: run_length_decode()
3.壓縮圖片: compress_image()
4.解壓縮圖片: decompress_image()
5.讀取圖片: cv2.imread()
6.計算平均壓縮率:
average_compression_ratio =
(len(compressed_data1) + len(compressed_data2) +len(compressed_data3)) / (img1.size + img2.size + img3.size)
Demo:
結果:
留言
張貼留言