zoukankan      html  css  js  c++  java
  • GDAL:测试实例

     //GDALTest.cpp : 定义控制台应用程序的入口点。


    #include "stdafx.h"

    #include "gdal_priv.h"

    #include <iostream>

    using namespace std;

    int main(int argc, char* argv[])            

    {

     if(argc!=2)

     {

      return 0;

     }

     GDALDataset *poDataset;  //数据集对象指针 
     GDALAllRegister();        //注册驱动
     poDataset = (GDALDataset *) GDALOpen(argv[1] , GA_ReadOnly );

     if( poDataset != NULL )

     {

      cout << "RasterXSize:" << poDataset -> GetRasterXSize() << endl;

      cout << "RasterYSize:" << poDataset -> GetRasterYSize() << endl;

      cout << "RasterCount:" << poDataset -> GetRasterCount() << endl;
      GDALClose((GDALDatasetH)poDataset); 
     }
     system("pause");
     return 0;

    }

    //#include "StdAfx.h"
    //#include "gdal_priv.h"  
    //#include "cpl_conv.h" //for CPLMalloc()  
    //  
    //// int main()
    //int main(int argc, char* argv[])
    //{ 
    //    //注册文件格式  
    //    GDALAllRegister(); 
    //   
    //    //const char* pszFile = "1.jpg";//"C:\\Test.img";  //1.jpg
    // const char* pszFile = argv[1];
    //    GDALDataset *poDataset; 
    //    //使用只读方式打开图像  
    //    poDataset = (GDALDataset*) GDALOpen( pszFile,GA_ReadOnly ); 
    //    if( poDataset == NULL ) 
    //    { 
    //        printf( "File: %s不能打开!\n",pszFile); 
    //        return 0; 
    //    } 
    //  
    //    //输出图像的格式信息  
    //    printf( "Driver:%s/%s\n", 
    //        poDataset->GetDriver()->GetDescription(), 
    //        poDataset->GetDriver()->GetMetadataItem( GDAL_DMD_LONGNAME) ); 
    //  
    //    //输出图像的大小和波段个数  
    //    printf( "Size is%dx%dx%d\n", 
    //        poDataset->GetRasterXSize(),poDataset->GetRasterYSize(), 
    //        poDataset->GetRasterCount()); 
    //  
    //    //输出图像的投影信息  
    //    if( poDataset->GetProjectionRef() != NULL ) 
    //        printf( "Projectionis `%s'\n", poDataset->GetProjectionRef() ); 
    //  
    //    //输出图像的坐标和分辨率信息  
    //    double adfGeoTransform[6]; 
    //    if( poDataset->GetGeoTransform( adfGeoTransform) == CE_None ) 
    //    { 
    //        printf( "Origin =(%.6f,%.6f)\n", 
    //            adfGeoTransform[0], adfGeoTransform[3]); 
    //  
    //        printf( "PixelSize = (%.6f,%.6f)\n", 
    //            adfGeoTransform[1], adfGeoTransform[5]); 
    //    } 
    //  
    //    GDALRasterBand *poBand; 
    //    int            nBlockXSize, nBlockYSize; 
    //    int            bGotMin, bGotMax; 
    //    double         adfMinMax[2]; 
    //  
    //    //读取第一个波段  
    //    poBand = poDataset->GetRasterBand( 1 ); 
    //  
    //    //获取图像的块大小并输出  
    //    poBand->GetBlockSize(&nBlockXSize, &nBlockYSize ); 
    //    printf( "Block=%dx%dType=%s, ColorInterp=%s\n", 
    //        nBlockXSize, nBlockYSize, 
    //        GDALGetDataTypeName(poBand->GetRasterDataType()), 
    //        GDALGetColorInterpretationName( 
    //        poBand->GetColorInterpretation())); 
    //  
    //    //获取该波段的最大值最小值,如果获取失败,则进行统计  
    //    adfMinMax[0] = poBand->GetMinimum( &bGotMin); 
    //    adfMinMax[1] = poBand->GetMaximum( &bGotMax); 
    //  
    //    if( ! (bGotMin&& bGotMax) ) 
    //        GDALComputeRasterMinMax((GDALRasterBandH)poBand, TRUE, adfMinMax); 
    //  
    //    printf( "Min=%.3fd,Max=%.3f\n", adfMinMax[0], adfMinMax[1] ); 
    //  
    //    //输出图像的金字塔信息  
    //    if( poBand->GetOverviewCount() > 0 ) 
    //        printf( "Band has%d overviews.\n", poBand->GetOverviewCount() ); 
    //  
    //    //输出图像的颜色表信息  
    //    if( poBand->GetColorTable() != NULL) 
    //        printf( "Band hasa color table with %d entries.\n", 
    //        poBand->GetColorTable()->GetColorEntryCount() ); 
    //  
    //    float *pafScanline; 
    //    int   nXSize = poBand->GetXSize(); 
    //    
    //    //读取图像的第一行数据  
    //    pafScanline = (float*) CPLMalloc(sizeof(float)*nXSize); 
    //    poBand->RasterIO(GF_Read, 0, 0, nXSize,1,  
    //        pafScanline, nXSize,1, GDT_Float32, 0, 0 ); 
    //  
    //    CPLFree(pafScanline); 
    //  
    ////关闭文件  
    //
    //
    //GDALClose((GDALDatasetH)poDataset); 
    //}
    //

  • 相关阅读:
    Update语句到底是如何操作记录的?
    sp_helptext输出错行问题解决
    SSMS查询快捷方式设置
    快速定义临时表或表变量
    T-SQL逻辑查询
    基于交换的排序算法
    插入排序及其扩展
    Python之django基础第一天,认识django
    flask虚拟环境的安装和注意事项
    Linux基础
  • 原文地址:https://www.cnblogs.com/shenchao/p/3136054.html
Copyright © 2011-2022 走看看