2021年5月31日 星期一

s1071438 影像處理作業6

 1.作業要求:

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

2.使用環境:

    Windows10
    VScode + anaconda3
    Python3.6.12
    Opencv4.5.1
    Numpy1.19.4

3.實作方法:
    !程式可以自己判定要壓縮還是解壓縮

    RLE Encode
    (一)先讀取.bmp的header,把寬,高求出
    (二)讀出圖片data後,reshape成numpy格式
    (三)分別將R,G,B個別取出,然後各別用RLE的方式壓縮後組合在一起(因為簡單的圖像其rgb值通              常會相同且連續)
    (四)將結果輸出成.1438結尾的檔案

    RLE Decode
    (一)讀入.1438檔案
    (二)分別將R,G,B的RLE值讀入
    (三)重新組合回numpy格式
    (四)輸出.bmp檔,結果與原檔相同

4.結果展示

    圖一壓縮率 = 13.9/5.66 =2.455
    
    

    圖二壓縮率 = 13.9 / 9.75 = 1.425
    
    
    圖三壓縮率 = 13.9/5.19 = 2.678


    
    解壓結果與原圖相同:
   
    
    平均壓縮率 = 41.7/20.6 = 2.024




    

2021年5月25日 星期二

s1073342 影像處理作業 6

  •  作業題目:
    • 附件中為三張利用將高度以色彩視覺化後的圖片。
      請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。
      部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)。
  •  使用環境:
    • window 10
    • python 3.9.2
    • numpy 1.20.1
    • opencv-python 4.5.1.48
  • 程式功能:
    • 輸入檔案名稱,會根據輸入的副檔名進行判斷壓縮還是解壓縮,壓縮後會輸出 "檔案名稱.3342" , 解壓縮會輸出 "de_檔案名稱"。
  • 程式碼相關資訊:
    • 把RGB分開存,不一定要三個顏色相同才能合併。
    • 如果加上其他色彩空間的判斷,也許壓縮可以更好,因為python最小只能以byte操作,如果要以bit操作,必須自己另外寫,所以有些空間被浪費。
    • 計算兩個方向的 Run-Length,最後在比較誰的檔案比較小,留下比較小的檔案。
  • 執行結果:


壓縮率:13.9 / 3.33 = 4.174

解壓縮後檔案相同

壓縮率:13.9 / 4.86 = 2.86


壓縮率:13.9 / 3.22 = 4.317

平均壓縮率 = 13.9 * 3 / (3.33 + 4.86 + 3.22) = 3.655









2021年5月24日 星期一

s1071515影像處理作業5

作業說明

撰寫一個程式來讀取附件中的讀.raw 檔案,將高度資料以圖片(顏色)視覺化呈現出來,讓設計人員可以看到高度相關資訊。

操作環境

Windows 10
Visual Studio 2019
OpenCV 4.5.2
Python 3.8

程式說明

1.利用unpack取得raw裡的資料
2.用max, min函式來取得最大與最小值
3.使用interp將最大值與最小值的差值調成0-1
4.使用reshape來將raw轉成圖片
5.利用plt來顯示結果

實作結果


                                          02

                                                             08

                                                                    10


s1070931影像處理作業5


一、作業說明:

       深度資料的顏色視覺化(Color Visualization of Depth Information)

撰寫一個程式來讀取附件中的讀.raw 檔案,將高度資料以圖片(顏色)視覺化呈現出來,讓設計人員可以看到高度相關資訊。

二、使用環境:

        - Windows 10

        - Visual Studio 2019 16.8.2(C++)

        - OpenCV4.5.0

        三、程式流程:

  • 讀取raw檔,將其資訊存在各個變數,並取出Width、Height、chCount及dep_Data(每個pixel的資料)。
  • 新增Mat dep_src(Height, Width, IMREAD_GRAYSCALE),將dep_Data每個*255存進dep_src中,途中篩選invalid value並改為0。
  • dep_src取最大值與最小值,進行convertTo()的範圍轉換,存進dep_img裡。
  • 將dep_img進行applyColorMap()的colorMap映射
  • 讀取bmp檔至bmp_src,將dep_img及bmp_src做resize()
  • dep_img及bmp_src兩張圖的顯示對照。

四、作業成果:

(02)
 
(08)
 
 
(10)