2022年6月1日 星期三

s1083340 作業6

 

作業說明

       附件中為三張利用將晶片高度以色彩視覺化後的圖片。

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

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


開發環境

  • Windows 11
  • Pycharm 2021
  • Python3.7
  • Opencv-python 4.5.5.62
程式說明
  
Encoding:
  1.使用cv2.imread()讀取圖片
  2.使用cv2.split()將圖像分成b,g,r通道
  3.使flatten()將各個通道轉成一維
  4.接著針對每一個通道進行RLE編碼,並將原圖片的長、寬、壓所後資料存入npz檔案中
    ⭐其中把b,g,r資料串接起來
  5.利用原始圖檔大小與壓縮後圖檔資料,計算圖片的壓縮率及平均壓縮率

Decoding:
  1.讀取壓縮檔(.npz)
  2.b,g,r壓縮資料分別存放
  3.接著針對每一個通道進行RLE解碼
  4.使用np.array()將資料型態轉成array
  5.使reshape()將各通道資料轉成三維
  6.使cv2.merge()b,g,r合併,得到原圖(無失真)

執行結果
 img1.bmp原圖,壓縮檔,還原檔

 img2.bmp原圖,壓縮檔,還原檔

 img3.bmp原圖,壓縮檔,還原檔

圖片的壓縮率及平均壓縮率










沒有留言:

張貼留言