首页 > 其他 > 详细

使用模板函数进行遥感图像处理

时间:2014-03-01 14:06:09      阅读:358      评论:0      收藏:0      [点我收藏+]

开发环境:win7,GDAL,VS2010,QT4.7

遥感图像的数据类型多种,如何使用模板函数进行方便处理呢?我的处理方式如下:

class c

 {

public:


void computeScatter(int nBandx,int nBandy,int xScale,int yScale, 
QVector<QVector<int>> &vecScatter,double *pMinMaxX,double *pMinMaxY);

private:

 template <class T>
  void computeScatterPriv(int nBandx,int nBandy,int xScale,int yScale,
 QVector<QVector<int>> &vecScatter,double *pMinMaxX,double *pMinMaxY);

}



C::computeScatter(int nBandx,int nBandy,int xScale,int yScale,
 QVector<QVector<int>> &vecScatter,double *pMinMaxX,double *pMinMaxY)

{

 int nBandCount=getBandCount();
   if(nBandCount<=0)
    return ;
   int dataType=getDataType(nBandx);

   switch(dataType)
   {
   case GDT_Byte:
    computeScatterPriv<unsigned char>(nBandx,nBandy,xScale,yScale,vecScatter,pMinMaxX,pMinMaxY);
    break;
   case GDT_UInt16:
     computeScatterPriv<unsigned short int>(nBandx,nBandy,xScale,yScale,vecScatter,pMinMaxX,pMinMaxY);
    break;
   case GDT_Int16:
       computeScatterPriv<short int>(nBandx,nBandy,xScale,yScale,vecScatter,pMinMaxX,pMinMaxY);
    break;
   case GDT_UInt32:
       computeScatterPriv<unsigned  int>(nBandx,nBandy,xScale,yScale,vecScatter,pMinMaxX,pMinMaxY);
    break;
   case GDT_Int32:
       computeScatterPriv<int>(nBandx,nBandy,xScale,yScale,vecScatter,pMinMaxX,pMinMaxY);
    break;
   case GDT_Float32:
     computeScatterPriv<float>(nBandx,nBandy,xScale,yScale,vecScatter,pMinMaxX,pMinMaxY);
    break;
   case GDT_Float64:
     computeScatterPriv<double>(nBandx,nBandy,xScale,yScale,vecScatter,pMinMaxX,pMinMaxY);
    break;

   }

}

  template <class T>
void C::computeScatterPriv(int nBandx,int nBandy,int xScale,
int yScale, QVector<QVector<int>> &vecScatter,double *pMinMaxOutX,double *pMinMaxOutY)
 {

   T*=new T[20];

//......

//自己的处理

//....
 }

 

在使用时使用调用computeScatter函数即可,可以对不同数据类型的遥感数据进行处理。
 

使用模板函数进行遥感图像处理,布布扣,bubuko.com

使用模板函数进行遥感图像处理

原文:http://blog.csdn.net/kupepoem/article/details/20155855

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!