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

2021年6月21日 星期一

S1041470 影像處理作業6

 一、作業說明:


請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)。


二、使用環境:


python3.8

spyder

windows 10

opencv4.5.0


三、方法:


壓縮:

讀入圖片

提取出需要的資料

進行run-length壓縮

再做run-length decoding

合併回原本圖片

執行結果

img1結果比較




img2結果比較


img3結果比較


img1壓縮率 = 2.46

img2壓縮率 = 1.42

img3壓縮率 = 2.68


平均壓縮率 : 2.18


2021年6月8日 星期二

s1071532 影像處理作業6

      

Run-Length Based Image Compression 練習

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

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

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


程式語言:Python 3.7.3 64-bit


開發環境:

  • Windows 10
  • Visual Studio Code
  • OpenCV 4.5.1


實作方法與演算法:


每次把一張圖片讀進來,經過 cv2.split 分成 b, g, r,之後對這三張圖進行壓縮成三個二元檔(.zipped)並存在一個剛創建的資料夾(跟原圖同名),並試圖還原成原圖確保有正確壓縮與解壓縮。

 

整個專案內部


原圖大小(14,665,254 bits)


圖一壓縮大小(5,335,008 bits)


圖二壓縮大小(8,896,473 bits)


圖三壓縮大小(5,095,878 bits)


壓縮率





圖片來源:


    作業內附。


2021年6月7日 星期一

s1061402 影像處理作業6

 

s1061402 林廷瑜 影像處理作業6

1.      作業內容說明

利用run-length方式壓縮bmp

2.      開發環境

Windows10

Visual Studio 2017 c++

Opencv4.5.1 vc15

3.      操作方式

code內輸入三張圖片的路徑並執行便輸出壓縮後的檔案(副檔名為123)

4.      程式說明

首先使用splitrgb三個channel分開,把這三個channeldata取出,並且將裡面的值用run-length的方式進行整理並放入壓縮檔





2021年6月6日 星期日

s1062036 影像處理作業6

 作業說明:

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

 

操作環境:

window10

python 3.6

pycharm

openCV 4.5.2.52

 

程式說明:

Encoding:

    1.imread()讀取圖片

    2.split()切成rgb通道  

    3.flatten()將rgb轉成1D array

    4.利用Run-Length編碼

    5.分別將rgb的list串接起來且前五項存起來

    6.輸出listimg_compress.2036

 

Decoding:

    1.open()讀取.2036

    2.將rgb資訊分別存入list

    3.利用Run-Length的方式解碼

    4.np.array()list轉成array並改為uint8

    5.reshape()array轉成(height, width, channel)

    6.merge()將rgb合併成img

    7.imwrite()輸出


執行結果:




壓縮率:8,074,099/14,665,254=0.55



壓縮率:13,789,356/14,665,254=0.94

 


壓縮率:7,488,796/14,665,254=0.51


s1071540 影像處理作業6


一、作業說明

Run-Length Based Image Compression

 

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

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

 

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



二、作業環境&語言

Windows 10 + Python 3.8.5 
         Pillow 8.1.0

 

三、方法&步驟

  1. 讀取bmp檔案
  2. 取出寬和高,以及每個pixelRGB
  3. RGB三值分開儲存(才可使Run-Length方法有效壓縮)
  4. 將長寬及壓縮後的RGB三條list接再一起並儲存為dat

五、執行結果

   img1.bmp:
Compression ratio:14665254/5940069=2.4688





   img2.bmp

Compression ratio: 14665254/10230.738=1.4334






  Img3.bmp

Compression ratio: 14665254/5450420=2.6906






avg compression ratio: 2.1976

  作業說明:

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

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

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

開發環境:

l   Windows 10

l   Spyder

l   Python 3.8

l   OpenCV 4.5.1

程式說明:

讀取檔案後分別取出rgb三通道數值

用run length方式壓縮後存成 img_compress.dat

run length decoding 重新產生 decoding 的 rgb

合併成新圖


圖片展示:

(原圖)


(原圖)





img1 壓縮率 : 14322 / 5790 = 2.47
img2 壓縮率 : 14322 / 9980 = 1.43
img3 壓縮率 : 14322 / 5312 = 2.69
平均壓縮率 : 2.19






s1071503 影像處理作業6

  1. 作業說明

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

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

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

2. 使用環境

            Anaconda(conda 4.8.3)、Python 3.9.2、OpenCV 4.5.1


3. 方法

            壓縮:

                    讀取寬度跟高度、把rgb數值用list存好

                    用struct.pack打包寫檔 先在開頭寫入長、寬,接下來逐行處理

                    該行相同顏色的紀錄column 統計顏色出現次數、顏色數量

                    打包整理後寫檔(acv_(+imgX).1503)

            解壓縮:

                    按照寫檔的順序拿出資料,然後np.zeros()做一個空白畫布

                    接下來就一點一點把顏色填上->(re_imgX)




(13.9/10.0 + 13.9/10.6 + 13.9/10.3) / 3 = 1.35




((雖然都長一樣 但還是放上來了XD