s1093320 作業6
作業說明: 附件中為三張利用將晶片高度以色彩視覺化後的圖片。 請設計一個基於 Run-Length 的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。 部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率 開發環境: window10, vscode, python3.11.1 程式實作: 對三個檔案進行壓縮。原始圖像的檔案名稱是 img1.bmp 、 img2.bmp 和 img3.bmp 。壓縮檔案的輸出檔案名稱分別為 compressed_image1.bin 、 compressed_image2.bin 和 compressed_image3.bin 。 開始遍歷 img_array 中的每一行。對於每一行,先建立一個空的列表 row_compressed ,並將第一個像素的顏色值設定為當前值 current_value ,並將計數器 count 初始化為 1 。 進行 run-length encoding ,遍歷這一行的像素。對於每個像素,程式碼檢查其顏色是否和當前值 current_value 相等。如果相等,count +1 ,表示我們有更多連續的同色像素。如果不相等,代表到達了當前顏色的結尾,將計數 count 和當前顏色 current 作為添加到 row_compressed 。然後我們將新的顏色設為 current_value ,並將 count 重置為 1 。 遍歷完一行後,添加最後一對count 和 current_value 。將row_compressed 添加到 compressed_data ,並繼續處理下一行。 遍歷完所有行之後,就得到了壓縮後的圖像數據compressed_data 。 壓縮比率:最後,程式會計算原始圖像大小與壓縮檔案大小的比率,即壓縮比率。 執行結果: