用 QGIS 轉換與壓縮正射影像 (tif, jpg, jp2)
由於影像拼接軟體 (Pix4Dmapper, WebODM) 初次所產生的正射影像通常未經壓縮的關係,導致輸出的檔案體積非常大。除了造成傳檔不便之外,也讓後續的影像辨識或地面標記工程窒礙難行。
以下糊塗流浪貓將介紹如何用 QGIS 將正射影像進行壓縮和轉檔。
用 JPEG Compression 壓縮
以 JPEG 參數進行壓縮,並輸出成 tif 檔。可將 15.0GB 的 tif 檔壓縮至3.0GB,且無明顯差異。但由於 libjpeg 先天限制的問題,檔案的像素若太大,則會出現 Maximum supported image dimension is 65500 pixels 的錯誤訊息。習翠
若要進行影像轉檔與壓縮,請在 QGIS 界面中打開處理工具箱 (Ctrl + Alt + T) 搜尋 Translate,並參考下圖進行設定即可開始 JPEG Compression 壓縮。
Processing Toolbox > Translate (Convert Format)
JPEG 參數設定
以終端機模式進行 JPEG Compression 壓縮。
gdal_translate -a_srs EPSG:3857 -of GTiff -co COMPRESS=JPEG -co
JPEG_QUALITY=70 -co BIGTIFF=yes -co TILED=yes -co PHOTOMETRIC=RGB/YCBCR In.tif
Out.tif
對影像金字塔進行JPEG壓縮
影像金字塔是 GIS 軟體用來加快讀取速度的技術,它會預先對各個影像層級產生縮圖,並將其內嵌於正射影像內來達到快速顯示的效果。
因此如果來源影像中有內嵌影像金字塔 (Overviews, Pyramids) 的話,可採用以下指令將其壓縮,進而大幅縮小正射影像的體積。
gdaladdo In.tif --config COMPRESS_OVERVIEW JPEG --config PHOTOMETRIC_OVERVIEW
RGB --config INTERLEAVE_OVERVIEW PIXEL -r average 2 4 8 16
另存成JPEG檔
於轉檔工具頁面中,設定畫質與輸出格式 「.jpg」 即可。
Processing Toolbox > Translate (Convert Format)
用 JP2 格式壓縮正射影像
JPEG 2000 是一種能在高壓縮率的情況下維持高畫質輸出的影像格式,目前較廣泛應用在醫學影像分析。在空間地理分析中我們也可以用它來對正射影像進行壓縮。習武漢肺炎翠
QGIS 啟用 jp2, j2k 壓縮技術
若要讓 QGIS 進行 jp2 格式轉檔,請到設定 > Raster Drivers 中將 JP2ECW, JP2MrSID 取消勾選,僅保留 JP2OpenJPEG 即可。
用 QGIS 將影像資料類型 (Data type) 轉換為 Byte
如果 JPG, TIF 轉檔成 jp2 的過程中跳出「ERROR 6: JP2OpenJPEG driver only supports creating Byte, GDT_Int16, GDT_UInt16, GDT_Int32, GDT_UInt32"」的錯誤,請在將轉檔工具的 Output data type 改為 Byte 即可。另外影像裁剪與輸出過程中也可設定輸出資料類型。
JP2 壓縮參數
於終端機中直接用指令進行 jp2 批次轉檔,可省下大量的系統資源與時間。
gdal_translate -of JP2OpenJPEG -co QUALITY=10 imageIn imageOut.jp2
其他參數
-co ALPHA=YES -co YCC=YES -co YCBCR420=YES -co QUALITY=3
受益良多,感謝教學!
回覆刪除