00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __freImageMerger_h
00024 #define __freImageMerger_h
00025
00026 #include "freElementals.h"
00027
00028 #include "itkRGBPixel.h"
00029
00030 namespace FREE
00031 {
00032
00038 template <class TImage>
00039 class ImageMerger
00040 {
00041 public:
00042
00043 virtual const char *GetNameOfClass() const
00044 {return "ImageMerger";};
00045
00046 typedef TImage ImageType;
00047 typedef typename ImageType::Pointer ImagePointer;
00048
00049 typedef itk::RGBPixel<unsigned char> RGBPixelType;
00050 typedef itk::Image<RGBPixelType,ImageType::ImageDimension> RGBImageType;
00051 typedef typename RGBImageType::Pointer RGBImagePointer;
00052
00053 void SetInput1(ImageType* pInput) {m_Input1 = pInput;};
00054 ImagePointer GetInput1() { return m_Input1;};
00055 void SetInput2(ImageType* pInput) {m_Input2 = pInput;};
00056 ImagePointer GetInput2() { return m_Input2;};
00057
00058 static RGBImagePointer GenerateAlternationImage(ImageType* pInput1, ImageType* pInput2, ImageType* pInput3);
00059 RGBImagePointer GenerateAlternationImage(ImageType* pInput3) const;
00060
00061 static ImagePointer GenerateBlendImage(ImageType* pInput1, ImageType* pInput2, unsigned int iMergeValue);
00062 ImagePointer GenerateBlendImage(unsigned int iMergeValue) const;
00063
00064 static ImagePointer GenerateCheckerImage(ImageType* pInput1, ImageType* pInput2, unsigned int iPatternSize);
00065 ImagePointer GenerateCheckerImage(unsigned int iPatternSize) const;
00066
00067 static ImagePointer GenerateDifferenceImage(ImageType* pInput1, ImageType* pInput2);
00068 ImagePointer GenerateDifferenceImage() const;
00069
00070 static RGBImagePointer GenerateColoredDifferenceImage(ImageType* pInput1, ImageType* pInput2);
00071 RGBImagePointer GenerateColoredDifferenceImage() const;
00072
00073 ImageMerger(ImageType* pInput1 = NULL, ImageType* pInput2 = NULL);
00074 ~ImageMerger();
00075
00076 protected:
00077
00078 ImagePointer m_Input1;
00079 ImagePointer m_Input2;
00080 };
00081
00082 }
00083
00084 #ifndef ITK_MANUAL_INSTANTIATION
00085 #include "freImageMerger.txx"
00086 #endif
00087
00088 #endif