2021年6月6日 星期日

s1073312影像處理作業6

  1.       作業說明:

請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。

部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率。

2.      作業環境、語言:

  • Windows 10 
  • Python 3.8.10
  • OpenCV 4.5.1
  • Visual Studio Code       
3.     實作

    Encode:
    1.使用cv2.imread讀bmp檔,放入img
    2.接著使用img陣列個別取出R,G,B
    3.對R,G,B個別使用RLE方式壓縮,(將連續的數字壓縮成一個)
    4.將RGB的結果寫入.3312檔案

    Decode:
    1.使用readline將height,weight,RGB資訊讀出來存入變數
    2.將之前的壓縮資料展開(看一個數字有幾個用for loop展開),接著存入變數
    3.使用np.array轉為numpy格式
    4.接著將三個組合再一起,在使用cv2.imwrite寫入bmp檔,就會形成原本的bmp圖


3.     執行結果

img1壓縮率:(7.74/13.9)*100%=55.68%




img1壓縮還原圖:





img2壓縮率:(13.1/13.9)*100%=94.24%

     




img2壓縮還原圖:


 img3壓縮率:(7.18/13.9)*100%=51.65%


img3壓縮還原圖:


    







沒有留言:

張貼留言