2021年6月7日 星期一

s1071508影像處理作業6

 

作業說明

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

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

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

開發環境


Window10/opencv4.5.2/python3.8

程式講解:

encode:
shape()取得Height,Width
split()取得b,g,r
flatten() b,g,r to 1-Darray
rle encode  b_arr,g_arr,r_arr to b_arr_rle,g_arr_rle,r_arr_rle
append()height,width, b_arr_rle,g_arr_rle,r_arr_rle
把list寫出檔案

decode:
讀進檔案
將String轉成my_list
height=my_list[0]
width=my_list[1]
b_arr=my_list[2]
g_arr=my_list[3]
r_arr=my_list[4]
b_arr_rle,g_arr_rle,r_arr_rle轉回np.array
mergeb ,g ,r  np.array 
cv.imwrite()輸出

img1
   壓縮率:14665254/8074080=1.816




img2
    壓縮率:14665254/13789338=1.063



img3
壓縮率:14665254/7488777=1.958
        


平均壓縮率=(1.816+1.063+1.958)/3=1.612





沒有留言:

張貼留言