2022年5月29日 星期日

s1083336 作業6

 作業說明:

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


開發環境:

  •     Windows10
  •     VSCode
  •     python 3.10.2
  •     OpenCV 4.5.5

實作說明:
    將讀入的圖片的channel切開來,提高壓縮效率
    B, G, R = cv2.split(img)

    依序將每個channel代入function,計算出美行的結果,並寫入檔案和計算花費
    def dealOneChannel(channel):
        for row in channel:
            result = oneRow(row)
            cost[0] += len(result)
            temp = ""
            for digit in result:
                temp = temp + str(digit) + ", "
            file.write(temp + '\n')
        file.write("\n")

    

    結果參考,一列對應到圖片的一個row的資料,但它會自動換行也不是很好看,每個channel會以一列完全空白的資料分別

壓縮的比例:
    

沒有留言:

張貼留言