2021年6月6日 星期日

s1071504影像處理作業6

  1.       作業說明:

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

2.      作業環境、語言:

l  Python3.9

l  OpenCV4.5.1

l  Windows10

l  Visual Studio Code

3.      實作過程:

RLE壓縮:

(1)     先讀入bmp圖檔,先read head出來並且使用struct.unpack得到長、寬

(2)     將剩餘的data read出來,用np.reshapenumpy格式

(3)     接著對rgb三個通道分別進行RLE的壓縮,將資料放進對應的list

(4)     將三個list以及長寬在append新的list,寫成1504的格式檔案

RLE解壓縮:

(1)     1504的檔案讀入

(2)     取出前面的長寬,並且用設計RLE的方式,反過來取回原本的RGB資料

(3)     創建出一個空白的np 2D array,再把RGB值填入

(4)     圖片以1504.bmp重新輸出



                      解壓縮還原的bmp檔案

                           
                               Img1.1504.bmp(解壓縮後還原圖)




解壓縮還原後的bmp

Img2.1504.bmp(解壓縮後)




解壓縮還原後的bmp

Img3.1504.bmp(解壓縮後)


平均壓縮率:(2.45+1.42+2.67)/3=2.18

沒有留言:

張貼留言