使用GDAL 的GDALBuildVRT  解決影像融合接邊均色 問題

問題:  多幅影像切片,但是影像直接有重疊還有黑邊, 還有色差.

如圖:

   

需要達到的效果:

解決方案:  

使用GDALBuildVRT  構建 虛擬數據集, 並使用額外參數 hidenodata  srcnodata vrtnodata

關鍵代碼如下: 其中names 就是一堆tif,img的 GDAL能打開的影像數據集, 創建完成後就可以把返回的t當作普通GDAL柵格數據操作,非常方便. 但是要注意 如果影像中間有純黑將會被透明點,  不過一般影像都是彩色,純黑很少,基本沒多大影像.

	GDALBuildVRTOptionsForBinary* VRTFB = NULL;
	
	std::vector<char*> papszArgv = { "-hidenodata", "-srcnodata", "0", "-vrtnodata", "0", nullptr}; 
	GDALBuildVRTOptions *VRTOptions = NULL;
	VRTOptions = GDALBuildVRTOptionsNew(&papszArgv[0], VRTFB);
	GDALDatasetH t = GDALBuildVRT("", size, NULL, names, VRTOptions, &bUsageError);
	if (bUsageError != 0)
	{
		ReleaseDataSet((GDALDataset*)t);
		GDALBuildVRTOptionsFree(VRTOptions);
		return;
	}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章