s1083520 作業6

 

 1112 Digital Image Processing Assignment #6

主題: Run-Length Based Image Compression 練習

題目敘述

附件中為三張利用將晶片高度以色彩視覺化後的圖片。
請設計一個基於Run-Length 的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。
部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率

開發環境

OS: Windows 10
Editor: Visual Studio Code
Compiler: GCC - 12.2.0(MinGW-W64)
Language: C++
Package: OpenCV - 4.7.0

實作方法

1. 使用imread()將圖片讀入
2. 使用split()將RGB圖片的3個channel取出
3. 分別對三個channel 依照RGB的順序進行encoding
     - 要注意opencv的順序是B, G, R 以免將channel資料搞混
4. 創建對應於輸入圖片的輸出檔案,將encode資料寫進檔案

Encoding方式(Run-Length)
將一樣的pixel變成(pixel, count)的形式進行,以得到壓縮的效果
但是如果整個圖片因為很複雜不夠單調的情況下,可能會使壓縮的效果不好
而這個情況可以在本次作業中的img2看出

壓縮率的計算
(1 - (compressed_size / original_size)) * 100 得到壓縮百分比

實作結果

Compression ratio


留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1091537 Homework #1