关于Tiff,tfw文件关系
Tiff影像格式
https://www.cnblogs.com/gywei/p/3393816.html 这里有详细的介绍。
TFW格式
https://blog.****.net/u014136513/article/details/50580619 看这里。
TFW和TIFF
在图像信息提取时,常常拿到带有.tfw文件(坐标变换)的影像。在ARCGIS中,坐标变换文件能够直观展示与其他相片的位置关系。
熟悉GDAL库的人都知道,我们读入影像,读入坐标信息,想要对影像进行操作(如裁剪),之后保存新生成的图像。保存之后的图像往往没有.tfw文件,而在ARCGIS中也能正确的显示其地理范围和分辨率。
经过GDALSetGeoTransform函数后,GDAL库自动将坐标信息保存在TIFF数据源的IFD中。便于一般软件的读取。此处真是体现了TIFF格式的强大。
但是一副TIFF影像既有匹配的.tfw文件,在信息头中又包含坐标信息时,在ARCGIS读取时,会以哪个为准呢?
于是我做了个实验。
如图:new11-11.tiff是经过GDAL裁剪11-11.tii后生成的影像。
经GDAL处理并生成匹配的.tfw文件。
// An highlighted block
GDALAllRegister();
CPLSetConfigOption("GDAL_FILENAME_IS_UTF8","NO"); //支持中文字符
GDALDatasetH hSrcDS = GDALOpen( "C:\\Users\\ChenXin\\Desktop\\imgfolder\\newwshp1.tif", GA_ReadOnly );
double gt[6];
GDALGetGeoTransform(hSrcDS,gt);
fstream tfw;
tfw.open( "C:\\Users\\ChenXin\\Desktop\\imgfolder\\newwshp1.tfw",ios::out);
tfw<<fixed;
tfw<<setprecision(5);
tfw<<gt[1]<<endl;
tfw<<gt[2]<<endl;
tfw<<gt[4]<<endl;
tfw<<gt[5]<<endl;
tfw<<gt[0]<<endl;
tfw<<gt[3]<<endl;
tfw.close();
GDALClose(hSrcDS);
修改生成的tfw文件信息,将影像左上角X坐标改为0.0。依然可以在arcgis中正确显示。
由此证明:软件在读取TIFF时,优先从影像头文件中获取信息。