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

2022年6月3日 星期五

s1081544 作業6

作業說明:

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

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

開發環境:

   Windows 11

      Visual studio2022

      Opencv-4.5.5

      C++

實作方法:

讀入三個圖檔,用split()將圖檔矩陣分為RGB三個通道,再將三個通道降維成一維陣列用vector儲存,再用自訂義runLenthEncoding函式壓縮圖檔,將檔案壓縮成.dat檔,最後用stat()得到檔案大小計算壓縮率

執行結果:

   壓縮後:

    計算壓縮率:

    dat檔資料:

2022年6月2日 星期四

s1081424 作業6


一、作業說明:

    

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

二、開發環境:


    (1)    Windows 10 + Visual Studio2019 + Opencv3.4.6

    (2)    方案組態:Debug

    (3)    方案平台:x64

    (4)    使用到的Library:iostram、opencv/opencv.hpp、fstream

    (5)    使用的語言:C++


三、實作說明:


     1.    一開始先讀進圖片,若檔名不存在則顯示


    
      2.    
讀取圖片,讀取長寬、各pixel值

     3.    寫 一個函示,負責處理圖片壓縮,裡面運用cv2切分成bgr三通道,利用Run-Length編碼:

              計算連續出現的值

    

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

      5.    最後再進行圖片的輸出


三、結論:

    

    1.   img1的壓縮率:



    2.    img2的壓縮率:

    3.    img3的壓縮率:

    4.    平均壓縮率:

    (1.8+1.0+1.9) / 3= 1.56

    




 s1081523 作業6

作業說明:

 離散傅立葉轉換 DFT練習

 

Run-Length Based Image Compression練習

 

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

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

 

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

開發環境: 

·     Windows 10

·     Visual Studio 2019

·     OpenCV 4.5.5

·     Python 3.10

 

實作方法:

1.      先用imread()讀取圖片

2.      然後將圖片的b,   g,    r轉換為一維陣列

3.      根據Run-Length壓所方法,進行編碼,分別算出b, g, r的壓縮率再做平均

4.      寫成txt檔匯出(我的電腦怪怪的,有303800筆資料它輸出到26萬多就會自己斷掉,導致後面list out of index),故我先不做寫出讀入檔案,而是以原本存好的list再做解壓縮。

5.      利用reshape把原圖的長寬值取出並重新輸出成圖片,並算出三張圖平均壓縮率。

 

執行結果:

一張含有 文字 的圖片

自動產生的描述

平均壓縮率是7.2757002973%

  s1081523 作業6

作業說明:

 離散傅立葉轉換 DFT練習

 

Run-Length Based Image Compression練習

 

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

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

 

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

開發環境: 

·     Windows 10

·     Visual Studio 2019

·     OpenCV 4.5.5

·     Python 3.10

 

實作方法:

1.      先用imread()讀取圖片

2.      然後將圖片的b,   g,    r轉換為一維陣列

3.      根據Run-Length壓所方法,進行編碼,分別算出b, g, r的壓縮率再做平均

4.      寫成txt檔匯出(我的電腦怪怪的,有303800筆資料它輸出到26萬多就會自己斷掉,導致後面list out of index),故我先不做寫出讀入檔案,而是以原本存好的list再做解壓縮。

5.      利用reshape把原圖的長寬值取出並重新輸出成圖片,並算出三張圖平均壓縮率。

 

執行結果:


平均壓縮率是7.2757002973%

 




 

平均壓縮率是12.1327428197




平均壓縮率是6.94958132177



三張圖平均壓縮率是8.78600814626

 



 


s1081526作業6

 

1. 作業說明:

  • Run-length Based Image Compression練習
                    設計一個基於Run-Length的壓縮方法,對彩色圖檔作無失真壓縮後,存成新檔案

2. 開發環境:

    windows11
    opencv-python 4.5.5.64

3. 流程:

    *需要將圖片與程式碼放在同一個資料夾中*
    我使用for迴圈用一樣的流程處理三張圖片。(三張圖片的路徑存在一個list中)
     首先用split將RGB通道分開後,用遍歷跑過所有像素,針對每個像素的rgb值做紀錄:
shape[0]是圖片的高;shape[1]是寬
    
        RGB三個通道都有各自的計數(counter_b/
counter_g/counter_r),和用來存放壓縮後資料的list(cb/cg/cr)

        計算的部分我寫成了函式calculate,演算法是:參數會傳入計數器、目前像素的某channel值、上一個值、紀錄壓縮資料的list。
        如果目前值和上一個值一樣,計數器就+1;如果不一樣,就把計數器和上一個值寫入紀錄的list,然後上一個值=目前的值,計數器回歸1,如此遍歷每個像素。
        
        最後先將圖片的資料寫入檔案,再將壓縮後的bgr三通道的值分別寫入(我順序是用bgr)。
壓縮文件
        然後計算壓縮率:
        用Path("檔案路徑").state().st_size取得檔案大小
        壓縮前/壓縮後=壓縮率

    

s1082040 作業6

 一、作業要求

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

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

二、程式說明

1. imread讀取圖片並建立vector<pair<int,int>>來儲存資料

2. rgb分別儲存成三個陣列

3. 將三個陣列用run-length方法存在vector<pair<int,int>>

4. 輸出成txt

5. stat讀取檔案並計算壓縮率

三、程式環境

Windows 10

Visual Studio 2019

OpenCV 3.4.6

四、執行畫面   

原圖

Run-length壓縮法

原圖與壓縮後尺寸


計算平均壓縮率














s1083327 作業6

1.作業說明:

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

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

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

2.開發環境:

Windows 10 + python 3.8 + Open CV 4.5.5  

3.實作方法:

1.讀入圖片 

2. 將圖分成B, G, R 三個channels 

3.分別對三個 channels 做 Run-length encoding 

4.將三個channels RLE 過後的值存進 np array 

5. 將 np array 存成 txt檔

6.用get_size取得檔案大小並計算壓縮率

6.對三張圖片重複執行以上步驟

7.計算平均壓縮率

4.執行結果