2021年6月6日 星期日

s1071414 影像處理作業6

 作業說明

附件中的讀.row晶片設計的高度檔案,設計人員無法直接看到相關資訊。利用你所學的Color顏色的知識與處理技術,撰寫一個程式來讀取附件中的讀.row 檔案,將高度資料以圖片(顏色)視覺化呈現出來,讓設計人員可以看到高度相關資訊

操作環境

  • macOS Big Sur 11.2.2
  • Python 3.8.5
  • OpenCV 4.5.1


實作方法


  • RLE Encode
    • 讀入影像
    • 將其 Height, Width, Channel 作為 header,以 byte 形式寫入 .bin 檔
    • 將圖片 reshape 成一維陣列
    • 以RLE方式壓縮所有 pixel ([像素1, 像素1連續長度, ... , 像素n, 像素n連續長度] )
    • 將壓縮結果以 byte 形式寫入 .bin 檔
    • 寫入格式如下圖

  • RLE Decode
    • 讀取 .bin 檔
    • 將檔案讀成一個一維的 list
    • 將 list 中 Height, Width, Channels 以及 R, G, B 部分取出
    • 將 R, G, B 通道還原為 Height x Width 之影像
    • 合併RGB通道

執行結果

img1.bmp 壓縮還原後


img1 壓縮率 = (5.3 / 14.7)*100% = 36.05%

img2.bmp 壓縮還原後

img2 壓縮率 = (8.9 / 14.7) * 100% = 60.54%

img3.bmp 壓縮還原後

img3 壓縮率 = (5.1 / 14.7) * 100 = 34.69%

平均壓縮率 = (36.05 + 60.54 + 34.69) / 3 = 43.67%



沒有留言:

張貼留言