int rgbtograygdal(const char* pszsrcfile, const char* pszdstfile, bool bit8 = true, const char* pszformat = "gtiff")
gdaldriver *podriver = getgdaldrivermanager()->getdriverbyname(pszformat);
if (podriver == null)
//獲取影象寬高和波段數
int ixsize = posrcds->getrasterxsize();
int iysize = posrcds->getrasterysize();
int ibandcount = posrcds->getrastercount();
//確定輸出影象的位數
gdaldatatype edt = gdt_uint16;
if (bit8)
edt = gdt_byte;
else
edt = gdt_uint16;
//建立16bit的資料
gdaldataset *podstds = podriver->create(pszdstfile, ixsize, iysize, ibandcount, edt, null);
double dgeotrans[6] = ;
//設定仿射變換引數
posrcds->getgeotransform(dgeotrans);
podstds->setgeotransform(dgeotrans);
//設定影象投影資訊
podstds->setprojection(posrcds->getprojectionref());
//用於儲存讀取的12bit資料
dt_16u *psrcdata = new dt_16u[ixsize];
if (bit8) //轉換為8bit
; int ngotmin, ngotmax;
gdalrasterband *psrcband, *pdstband;
psrcband = posrcds->getrasterband(iband);
pdstband = podstds->getrasterband(iband);
adfminmax[0] = psrcband->getminimum(&ngotmin);//獲得 iband 波段影像中的最大值和最小值,用於拉伸
adfminmax[1] = psrcband->getmaximum(&ngotmax);
cout << "波段 " << iband << " 的max number :" << adfminmax[1] << endl;
cout << "波段 " << iband << " 的min number :" << adfminmax[0] << endl;
for (int i = 0; i < iysize; i++) //迴圈影象高
pdstband->rasterio(gf_write, 0, i, ixsize, 1, pdstdata, ixsize, 1, gdt_byte, 0, 0);
}} release(pdstdata); //釋放記憶體
} else //轉換為16bit資料
}} release(psrcdata);
//關閉原始影象和結果影象
gdalclose((gdaldataseth)podstds);
gdalclose((gdaldataseth)posrcds);
return 0;
}
js 進行數字運算
在js讀取文字框或者其它表單資料的時候獲得的值是字串型別的,例如兩個文字框a和b,如果獲得a的value值為11,b的value值為9 那麼a.value要小於b.value,因為他們都是字串形式的.在網上找了一下js字串轉數字的文章,這個比較全 方法主要有三種 轉換函式 強制型別轉換 利用js變數...
利用Python進行資料聚合和分組運算
created by darren chen created on 2018 8 2 import pandas as pd import numpy as np import os,time,sys 像sql這種結構化查詢語言所執行的分組運算的種類十分有限 分組鍵的多種形式 1 列表或陣列,其長度...
MySQL 分表分庫怎麼進行資料切分
關係型資料庫本身比較容易成為系統瓶頸,單機儲存容量 連線數 處理能力都有限。當單錶的資料量達到1000w或100g以後,由於查詢維度較多,即使新增從庫 優化索引,做很多操作時效能仍下降嚴重。此時就要考慮對其進行切分了,切分的目的就在於減少資料庫的負擔,縮短查詢時間。資料庫分布式核心內容無非就是資料切...