去年工作中,有用到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...