/// UInt8
case GDT_Byte:
- if( channels == 1 ){ return CV_8UC1; }
- if( channels == 3 ){ return CV_8UC3; }
- if( channels == 4 ){ return CV_8UC4; }
- else { return CV_8UC(channels); }
- return -1;
+ return CV_8UC(channels);
/// UInt16
case GDT_UInt16:
- if( channels == 1 ){ return CV_16UC1; }
- if( channels == 3 ){ return CV_16UC3; }
- if( channels == 4 ){ return CV_16UC4; }
- else { return CV_16UC(channels); }
- return -1;
+ return CV_16UC(channels);
/// Int16
case GDT_Int16:
- if( channels == 1 ){ return CV_16SC1; }
- if( channels == 3 ){ return CV_16SC3; }
- if( channels == 4 ){ return CV_16SC4; }
- else { return CV_16SC(channels); }
- return -1;
+ return CV_16SC(channels);
/// UInt32
case GDT_UInt32:
case GDT_Int32:
- if( channels == 1 ){ return CV_32SC1; }
- if( channels == 3 ){ return CV_32SC3; }
- if( channels == 4 ){ return CV_32SC4; }
- else { return CV_32SC(channels); }
- return -1;
+ return CV_32SC(channels);
case GDT_Float32:
- if( channels == 1 ){ return CV_32FC1; }
- if( channels == 3 ){ return CV_32FC3; }
- if( channels == 4 ){ return CV_32FC4; }
- else { return CV_32FC(channels); }
- return -1;
+ return CV_32FC(channels);
case GDT_Float64:
- if( channels == 1 ){ return CV_64FC1; }
- if( channels == 3 ){ return CV_64FC3; }
- if( channels == 4 ){ return CV_64FC4; }
- else { return CV_64FC(channels); }
- return -1;
+ return CV_64FC(channels);
default:
std::cout << "Unknown GDAL Data Type" << std::endl;
std::cout << "Type: " << GDALGetDataTypeName(gdalType) << std::endl;
return -1;
}
-
- return -1;
}
/**
*/
GdalDecoder::GdalDecoder(){
-
// set a dummy signature
m_signature="0";
for( size_t i=0; i<160; i++ ){
*/
GdalDecoder::~GdalDecoder(){
-
if( m_dataset != NULL ){
close();
}
// make sure the image is the proper size
- if( img.size().height != m_height ){
- return false;
- }
- if( img.size().width != m_width ){
+ if( img.size() != Size(m_width, m_height) ){
return false;
}
// set the image to zero
img = 0;
-
// iterate over each raster band
// note that OpenCV does bgr rather than rgb
int nChannels = m_dataset->GetRasterCount();
// delete our temp pointer
delete [] scanline;
-
-
}
return true;