s1061549 作業6
1112 Digital Image Processing Assignment #6
Run-Length Based Image Compression 練習
附件中為三張利用將晶片高度以色彩視覺化後的圖片。 請設計一個基於 Run-Length 的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。 部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率 (compression ratio)。
開發環境
-windows 10
-visual studio 2022 c++
-opencv 4.7.0
作業說明
runLengthEncoding 函數:進行圖像的壓縮。讀取圖像的每個像素,並檢查每個像素是否與前一個像素的顏色相同。如果是,增加計數;如果不是,會將計數和前一個像素的顏色作為一對數據添加到壓縮結果中,並將計數重設為1。
writeToFile 函數:將壓縮結果(runLengthEncoding 的輸出)寫入二進位檔案。
getFileSize 函數:讀取一個檔案並返回大小。通過將檔案的讀取位置設置到檔案的結尾,然後讀取這個位置來得到檔案大小的。
main 函數:對指定的圖片進行 RLE 壓縮,計算每張圖片的原始大小、壓縮後大小和壓縮率,最後計算平均壓縮率。
double compressionRatio = (double)(originalSize - compressedSize) / originalSize; 計算壓縮率
留言
張貼留言