s1091550 作業6
題目敘述:
附件中為三張利用將晶片高度以色彩視覺化後的圖片。
請設計一個基於 Run-Length 的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。
部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率
(compression ratio)。
開發環境:
- Windows 10
- Visual Studio 2019 C++
- OpenCV 4.2.0
說明
- 壓縮
- imread()讀入影像
- 以split()切分b,g,r三通道
- 用reshape()分別對b,g,r三通道進行轉換,存入二維vector1
- 使用RLE對b,g,r做運算
- 將資料以pair<int,int>的型態存入二維vector2
- p.first = 數值
- p.second = 數量
- 將圖片之長、寬及vector2資料輸出成txt檔做儲存
![]() |
txt檔 |
- 解壓縮
- 讀取txt檔資料
- 將b,g,r三通道值存入二維vector3
- 以img.at<Vec3b>(x, y) = Vec3b(b值, g值, r值)將每個點賦值
- imshow()顯示解壓縮後圖像
執行結果:
- 圖像
img1: (14322 / 5611) => 2.55248
img2: (14322 / 8356) => 1.71397
img3: (14322 / 5214) => 2.74683
平均: (2.55248+1.71397+2.74683) / 3 => 2.33776
留言
張貼留言