eLynx SDK
v3.0.1 C++ image processing API reference |
00001 //============================================================================ 00002 // IImageHandler.h Image.Component package 00003 //============================================================================ 00004 // Usage : image handler interface 00005 //---------------------------------------------------------------------------- 00006 // Copyright (C) 2006 by eLynx project 00007 // 00008 // This library is free software; you can redistribute it and/or 00009 // modify it under the terms of the GNU Library General Public 00010 // License as published by the Free Software Foundation; either 00011 // version 2 of the License, or (at your option) any later version. 00012 // 00013 // This library is distributed in the hope that it will be useful, 00014 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00016 // See the GNU Library General Public License for more details. 00017 //---------------------------------------------------------------------------- 00018 #ifndef __IImageHandler_h__ 00019 #define __IImageHandler_h__ 00020 00021 #include <elx/image/ImageLib.h> 00022 #include <elx/image/AbstractImage.h> 00023 #include <boost/shared_ptr.hpp> 00024 00025 namespace eLynx { 00026 namespace Image { 00027 00028 // Forward declarations 00029 class IImageGeometry; 00030 class IImageAnalyse; 00031 class IImageOperators; 00032 class IImagePointProcessing; 00033 class IImageLocalProcessing; 00034 class IImageGlobalProcessing; 00035 class IImageEdgeProcessing; 00036 class IImageMorphologicalProcessing; 00037 class IImageMiscProcessing; 00038 class IImageRasterization; 00039 class IImageRestoration; 00040 00045 00046 class ExportedByImage IImageHandler 00047 { 00048 public: 00050 virtual ~IImageHandler(); 00051 00054 00059 virtual boost::shared_ptr<AbstractImage> 00060 CreateImage(uint32 iWidth, uint32 iHeight) const = 0; 00061 00065 virtual boost::shared_ptr<AbstractImage> 00066 CreateImage(const AbstractImage& iImage) const = 0; 00067 00074 virtual boost::shared_ptr<AbstractImage> 00075 CreateImage(const AbstractImage& iImage, 00076 EResolution iResolution, bool ibScaled = true) const = 0; 00077 00078 virtual boost::shared_ptr<AbstractImage> 00079 CreateImageUByteFullDynamic(const AbstractImage& iImage) const = 0; 00081 00084 00087 virtual const IImageGeometry& GetGeometryHandler() const = 0; 00088 00091 virtual const IImageAnalyse& GetAnalyseHandler() const = 0; 00092 00095 virtual const IImageOperators& GetOperatorsHandler() const = 0; 00096 00099 virtual const IImagePointProcessing& GetPointToPointHandler() const = 0; 00100 00103 virtual const IImageLocalProcessing& GetLocalToPointHandler() const = 0; 00104 00107 virtual const IImageGlobalProcessing& GetGlobalToPointHandler() const = 0; 00108 00111 virtual const IImageEdgeProcessing& GetEdgeProcessingHandler() const = 0; 00112 00115 virtual const IImageMorphologicalProcessing& GetMorphologicalHandler() const = 0; 00116 00119 virtual const IImageMiscProcessing& GetMiscHandler() const = 0; 00120 00123 virtual const IImageRasterization& GetRasterizationHandler() const = 0; 00124 00127 virtual const IImageRestoration& GetRestorationHandler() const = 0; 00129 }; 00130 00131 } // namespace Image 00132 } // namespace eLynx 00133 00134 #endif // __IImageHandler_h__