2021年5月31日 星期一

s1071438 影像處理作業6

 1.作業要求:

    請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)。

2.使用環境:

    Windows10
    VScode + anaconda3
    Python3.6.12
    Opencv4.5.1
    Numpy1.19.4

3.實作方法:
    !程式可以自己判定要壓縮還是解壓縮

    RLE Encode
    (一)先讀取.bmp的header,把寬,高求出
    (二)讀出圖片data後,reshape成numpy格式
    (三)分別將R,G,B個別取出,然後各別用RLE的方式壓縮後組合在一起(因為簡單的圖像其rgb值通              常會相同且連續)
    (四)將結果輸出成.1438結尾的檔案

    RLE Decode
    (一)讀入.1438檔案
    (二)分別將R,G,B的RLE值讀入
    (三)重新組合回numpy格式
    (四)輸出.bmp檔,結果與原檔相同

4.結果展示

    圖一壓縮率 = 13.9/5.66 =2.455
    
    

    圖二壓縮率 = 13.9 / 9.75 = 1.425
    
    
    圖三壓縮率 = 13.9/5.19 = 2.678


    
    解壓結果與原圖相同:
   
    
    平均壓縮率 = 41.7/20.6 = 2.024




    

沒有留言:

張貼留言