2016-09-15 183 views
0

有問題。我有一個tiff圖像(有4層)。 我的任務是對像素的顏色進行細微更改以使圖像更好。 在這種情況下,我使用GDAL庫。我的來源是:GDAL獲取像素顏色

GDALDataset *poDataset; 
GDALAllRegister(); 
poDataset = (GDALDataset *) GDALOpen(fileName.toStdString().c_str(), GA_ReadOnly); 
if (poDataset == NULL) { 
    QMessageBox::information(0, "error", "We have problems"); 
} else { 
    QMessageBox::information(0, "Message", "All is ok"); 
} 
int rasterCount = poDataset->GetRasterCount(); // Here is 4 raster images 
GDALRasterBand *band = poDataset->GetRasterBand(1); 
int width = band->GetXSize(); 
int height = band->GetYSize(); 


for (int i = 0; i < width; i++) { 
    for (int j = 0; j < height; j++) { 
     // cross all pixels 
     // How to get pixel color here? 
    } 
} 

所以我不知道如何獲得像素顏色的循環。你能給我建議嗎?

+1

這個問題可能更適合於http://gis.stackexchange.com – cartant

+0

補充說,感謝意見。 – lazexe

回答

0

我沒有在GDAL API中的例子,但我已經在python庫中完成了。您可以按照類似的邏輯做類似的事情,通過獲取圖像值數組並循環遍歷它,同時對其應用一些條件更改。

import numpy as np 
from osgeo import gdal 
ds = gdal.Open("test.tif") 
myarray = np.array(ds.GetRasterBand(1).ReadAsArray()) 
...