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: 結果: