顯示具有 110hw6 標籤的文章。 顯示所有文章
顯示具有 110hw6 標籤的文章。 顯示所有文章

2022年6月3日 星期五

s1073318 作業6

 一、 作業說明

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

二、 作業環境

Windows 10

OpenCV 4.5.5                                                             

Visual Studio 2017

三、 實作方法

Encode:

1. 讀取圖片,使用split()得到圖片的三個channel

2. 分別對三個channel處理,把pixel value轉換成(number of pixel, value of pixel)(0,0)end of line(0,1)end of image

3. 新增檔案img1.dat,寫入number of rowsnumber of colsRun Length Encode data

Encode function


Decode:

1.      讀取img1.dat,讀取number of rowsnumber of cols並建一個cv::Mat::zeros(row, col, CV_8UC3);

2.      讀取Run Length Encode data依照資料assign value

3.      顯示decode後圖片。

Decode function


Compression rate:

Img1: 14322/6068=2.36

Img2: 14322/10254=1.40

Img3: 14322/5579=2.57

Avg: (2.36+1.40+2.57)/3=2.11


、執行結果

Img1

Img1 decoded

Img2

Img2 decoded

Img3

Img3 decoded

File size compare

2022年6月2日 星期四

S1083511 作業6

一、程式問題

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

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

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

二、開發環境

Windows 10 + Visual Studio 2019 + OpenCV 3.4.6

三、實作方法

     1. 建立vector儲存資料。

     2.  imread讀取圖片。

 3. 將三個陣列用RLE方法存在vector裡。

 4. 輸出成txt檔,並存在電腦中。 

四、執行結果

(a) 原圖




(b)原圖與壓縮後尺寸


(c)計算平均壓縮率

       圖一壓縮率 : 14322 / 5801 = 2.469

       圖二壓縮率 : 14322 / 9991= 1.433

       圖三壓縮率 : 14322 / 5323 = 2.690

   平均壓縮率 : (2.469 + 1.433 + 2.690) / 3 = 2.197



 

s1081509 作業6

 作業說明:

 Run-Length Based Image Compression練習

 

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

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

 

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

環境:

Ubuntu 20.40

Vim 8.2

Python 3.8.10

Opencv-python 4.5.5.64

Numpy 1.22.3

程式功能:

1. imread讀檔

2.將img split成BGR

3.對每個channel做RLC(oneChannelRLC function) (pixel強度, 數量)

4.將結果存成txt

(第一張圖為list直接存(壓縮效果不彰),第二張為每個row都是一個數字)

即編碼進txt方式不同

5. 計算壓縮率

*. Decoding Check將list reshape回原本channel的np array




使用指令:

python3 Assignment6.py img1.bmp

or

chmod +x Assignment6.py ;

./Assignment6.py img1.bmp


s1073513 作業6

 

作業說明

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

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

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

開發環境

·                     Windows 11

·                     Visual Studio Code

·                     Anaconda 4.11.0

·                     OpenCV 4.5.5

程式說明

def RLE_encoding(img, bits=8,  binary=True, view=True):

獲取每個通道並將其視為灰度圖像並在其上應用 RLE

將圖像轉換為二進製或按原樣使用。

然後將圖像轉換為平面,即一維向量。

從左到右掃描。

如果先前的值與當前值相同,則計算運行,否則附加(value, run)在編碼上。並且還要檢查運行長度,即如果它變成2**bits - 1然後附加它。如果它超過該值,那麼我們的值將在稍後四捨五入到 8 位範圍。

執行結果:



平均壓縮率:

TIFF: 9.875182079629367

NPZ: 1.470892777801373

s1071516作業6

  一、作業說明                                    

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

二、開發環境:

Windows 11

vscode

Python 3.9

OpenCV - 4.5.5

三、實作方法

1.     利用input來取得檔案的名字並讀取.bmp

2.     之後處理每個通道的數值,利用run length 運算儲存後,並將寫成.encode

3.     在讀入先前encode的檔案根據Header的資訊並還原圖輸出成_decode.bmp

4 .    利用getsize計算出檔案大小,進而計算出壓縮率

5.     3張圖都輸入處理完後,計算平均壓縮率

四、執行結果:



先輸入檔案名稱

輸入要檔名要存成壓縮後的檔案

輸入encode的檔名要decode的檔案

輸入要還原的檔名

輸入encode檔名,計算壓縮率


壓縮後的檔案和解壓縮的檔案:









s1081416 作業6

 s1081416 作業6

Run-Length Based Image Compression練習


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

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

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


開發環境:

Windows10


Vscode


Opencv 4.5.5


Python 3.10.2


程式說明:


一開始讀入圖片後,先將圖片B,G,R值用split()分開,再來使用flatten()將各通道變成一維陣列接著針對每一個通道進行RLE壓縮,將RLE後的B、G、R 和長寬存入bmp檔案,最後來用getsize()取得圖片大小,然後得到圖片壓縮率和平均壓縮率,並顯示解壓圖片


img1


img2


img3









s1081409 作業 6

 一、作業說明                                    

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

二、開發環境:

 1. vs2022

2. opencv4.5.5

3. win11

4. C++

三、實作方法

1.imread讀檔
2.用split()將通道分開
3.對各別通道做RLE
4.把壓縮完的檔案寫出成txt,(b,g,r資料用','隔開)
5.計算壓縮率

四、執行結果:

輸出後結果

img1

img2

img3

壓縮率


s1081411 作業6

 1.作業說明:

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

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

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

2.開發環境:

  • windows10
  • OpenCV 4.5.5
  • Visual Studio 2019
  • C++

3.實作方法:

1.imread()讀入圖片

2. 將圖分成B,G,R  

3.分別對B,G,R 做 RLE 

4.將分別做的RLE存至txt文檔中 

5.讀取原圖和壓縮後檔案大小計算壓縮率

6.計算平均壓縮率

4.執行結果

圖1
圖2
圖3
壓縮率
檔案大小比對
檔案大小比對
檔案大小比對




s1073522 作業 6

 一、作業說明                                    

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

二、開發環境:

Ø  Windows 11

Ø  Pycharm

Ø  Python 3.9

Ø  OpenCV - 4.5.5.64

三、實作方法

  1. 將   header 資訊讀取出來
  2. 將所有   pixel 值存放在   list 
  3. 讓每一   pixel 之   RGB 分別與前一   pixel 之   RGB 比較,用三個   list 儲存各   pixel 的   RGB 分布
  4. 分別用   maxRmaxGmaxB 儲存最大的數量
  5. 分別算出算出至少需多少   bytes 儲存數字
  6. 存檔時,用   to_bytes() 將每個顏色數量轉成對應的   byte 數儲存
  7. 壓縮檔案儲存為   imgX_compress.bin

四、執行結果:

圖一原圖


 

圖一解壓縮後結果圖


 

圖二原圖


 

圖二解壓縮後結果圖


 

圖三原圖


 

圖三解壓縮後結果圖


 

壓縮率

 


  圖一壓縮率 : 14322 / 4168 = 3.436 

圖二壓縮率 : 14322 / 5369 = 2.667 

圖三壓縮率 : 14322 / 3982 = 3.596 

平均壓縮率 : (3.436 + 2.667 + 3.596) / 3 = 3.233

 

程式執行結果