Horus Doc || C++ Reference || Class Overview   Pixels   Images   Detector   Geometry   Registry || Doxygen's quick Index  

HxMakeFrom3Images.h File Reference

More...

#include "HxImageRep.h"

Go to the source code of this file.

Functions

HxImageRep L_HXIMAGEREP HxMakeFrom3Images (HxImageRep i1, HxImageRep i2, HxImageRep i3)
 Make a new image with pixel values "stacked" from given arguments. More...


Detailed Description


Function Documentation

HxImageRep L_HXIMAGEREP HxMakeFrom3Images HxImageRep    i1,
HxImageRep    i2,
HxImageRep    i3
 

Make a new image with pixel values "stacked" from given arguments.

For example, if i1, i2, and i3 are scalar images the pixel values in the new image are 3-vectors. Result may need exceed highest pixel dimensionality.

00014 {
00015     HxString fname("HxMakeFrom3Images");
00016 
00017     if (i1.isNull())
00018     {
00019         HxGlobalError::instance()->reportError(fname, i1.name(), "null image", HxGlobalError::HX_GE_INVALID);
00020         return HxImageRep();
00021     }
00022     if (i2.isNull())
00023     {
00024         HxGlobalError::instance()->reportError(fname, i2.name(), "null image", HxGlobalError::HX_GE_INVALID);
00025         return HxImageRep();
00026     }
00027     if (i3.isNull())
00028     {
00029         HxGlobalError::instance()->reportError(fname, i3.name(), "null image", HxGlobalError::HX_GE_INVALID);
00030         return HxImageRep();
00031     }
00032 
00033     if ((i1.dimensionality() != i2.dimensionality()) || (i1.dimensionality() != i3.dimensionality()))
00034     {
00035         HxGlobalError::instance()->reportError(fname, "unequal image dimensionalities", HxGlobalError::HX_GE_UNEQUAL_IMAGES);
00036         return HxImageRep();
00037     }
00038     if ((i1.pixelType() != i2.pixelType()) || (i1.pixelType() != i3.pixelType()))
00039     {
00040         HxGlobalError::instance()->reportError(fname, "unequal pixel types", HxGlobalError::HX_GE_UNEQUAL_IMAGES);
00041         return HxImageRep();
00042     }
00043     if ((i1.pixelDimensionality() != i2.pixelDimensionality()) || (i1.pixelDimensionality() != i3.pixelDimensionality()))
00044     {
00045         HxGlobalError::instance()->reportError(fname, "unequal pixel dimensionalities", HxGlobalError::HX_GE_UNEQUAL_IMAGES);
00046         return HxImageRep();
00047     }
00048 
00049     if ((i1.sizes().x() != i2.sizes().x()) || (i1.sizes().x() != i3.sizes().x()))
00050     {
00051         HxGlobalError::instance()->reportError(fname, "unequal image widths", HxGlobalError::HX_GE_UNEQUAL_IMAGES);
00052         return HxImageRep();
00053     }
00054     if ((i1.sizes().y() != i2.sizes().y()) || (i1.sizes().y() != i3.sizes().y()))
00055     {
00056         HxGlobalError::instance()->reportError(fname, "unequal image heights", HxGlobalError::HX_GE_UNEQUAL_IMAGES);
00057         return HxImageRep();
00058     }
00059     if (i1.dimensionality() > 2)
00060     {
00061         if ((i1.sizes().z() != i2.sizes().z()) || (i1.sizes().z() != i3.sizes().z()))
00062         {
00063             HxGlobalError::instance()->reportError(fname, "unequal image depths", HxGlobalError::HX_GE_UNEQUAL_IMAGES);
00064             return HxImageRep();
00065         }
00066     }
00067 
00068     return HxImageFactory::instance().from3Images(i1, i2, i3);
00069 }


Generated on Tue Feb 3 14:18:49 2004 for C++Reference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001