作業說明:
請設計一個基於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會以一列完全空白的資料分別
壓縮的比例:
沒有留言:
張貼留言