TIFF檔案讀取總結

2021-09-14 00:55:17 字數 960 閱讀 1510

去年工作中,有用到tiff影象處理。開始的時候直接用qt的qimage進行影象載入。然後發現大的tiff影象用這個載入不進去。尋找原因,是由於tiff影象分為標準tiff和big tiff兩種格式,而qt的qimage只支援標準的格式。

然後,用gdal庫支援big tiff格式讀取。然後發現在tiff檔案很大的時候在new記憶體的時候,常常發生電腦卡死的情況。又開始了分塊讀入tiff影象。

最終的讀取方式:

.........

gdalallregister();

cplsetconfigoption("gdal_filename_is_utf8", "no"); //支援中文路徑

gdaldataset* podataset = (gdaldataset *)gdalopen(imgpath, ga_readonly);

if (podataset == nullptr)

....

......

podataset->rasterio(gf_read, imgk_px_min, imgk_py_max, crop_width, crop_height,

data3, crop_width, crop_height, gdt_byte, band_count, pbandmap, band_count, crop_width*band_count, 1);

.......

.....

從(imgk_px_min,imgk_py_max)點讀取長寬為(crop_width,crop_height)的一塊矩形影象。rasterio(…,band_count, crop_width*band_count, 1)代表的是按照一行一行的進行資料儲存到data3這個buffer裡面。

另外,在除錯過程中,注意,最後一塊和開頭一塊的起始和結束位置。起始畫素是(0,0),結束畫素是(imgwidth-1,imgheight-1)。

TIFF 檔案顯示和讀取

tiff檔案的處理已經基本上完成了,在此寫下自己對tiff檔案處理的總結。1.tiff檔案是以tag作為資料的組織方式的,關於tiff檔案的所有內容都可以通過tag tag value 的形式讀寫。2.tiff檔案頭 0 1 位元組序 2 3 版本號 4 7 第一組tag 也可以叫第一幅 頁圖 的偏...

tiff檔案讀取若干問題

2.讀取檔案報錯 執行時提示,檢查發現 沒有問題,讀取 如下 tiff tiff char szfilename d mongodb data 40405.tif tiff tiffopen szfilename,r 開啟tiff檔案 報錯提示 網上找的 出現這種情況似乎是只能讀取印刷格式的影象,r...

Python學習之讀取TIFF檔案

匯入cv模組 import cv2 as cv import numpy as np 讀取影象,支援 bmp jpg png tiff 等常用格式 第二個引數是通道數和位深的引數,有四種選擇,參考 img cv.imread filename.tif 2 print img 在這裡一開始我寫成了im...