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); 
    //}
    //

  • 相关阅读:
    2. Add Two Numbers
    1. Two Sum
    22. Generate Parentheses (backTracking)
    21. Merge Two Sorted Lists
    20. Valid Parentheses (Stack)
    19. Remove Nth Node From End of List
    18. 4Sum (通用算法 nSum)
    17. Letter Combinations of a Phone Number (backtracking)
    LeetCode SQL: Combine Two Tables
    LeetCode SQL:Employees Earning More Than Their Managers
  • 原文地址:https://www.cnblogs.com/shenchao/p/3136054.html
Copyright © 2011-2022 走看看