2021年6月4日 星期五

s1071546 影像處理作業 6

作業說明:

       附件中為三張利用將高度以色彩視覺化後的圖片。請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。

Coding環境:

  • Windows 10 20H2
  • Anaconda 3.18.11
  • Python 3.9.1
  • OpenCV 4.5.1

程式說明:

    使用RLE進行圖片壓縮

1.  使用者使用python s1071546_hw6.py -i <欲壓縮的影像檔名>來進行壓縮

2.  使用open()將檔案載入並使用struct.unpackbinary檔案的讀取,並依據RGB分開儲存

3.  使用np.reshape()將讀取進來的pixel排成影像的格式(width,height,channel)

4.  使用cv2.flip()將讀取進來的圖片上顛倒

5.  使用RLE壓縮連續且相同的數值

6.  寫成dat檔後再次讀入,並進行解壓縮

處理結果:

 

Img1 原圖

Img1 壓縮完後解壓縮結果圖

Img2   原圖

Img2 壓縮完後解壓縮結果圖

Img3 原圖

Img3 壓縮完後解壓縮結果圖

檔案大小示意圖

平均壓縮率 = 13.99MB (Img 1 原圖) / ( 3.06MB (Img1 壓縮檔大小) + 13.99MB (Img 1 原圖) / 5.10MB (Img1 壓縮檔大小) + 13.99MB (Img 1 原圖) / 2.93MB (Img1 壓縮檔大小) ) / 3 = 4.03











沒有留言:

張貼留言