eLynx SDK
v3.3.0 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 00084 virtual boost::shared_ptr<AbstractImage> 00085 CreateChannel(const AbstractImage& iImage, 00086 uint32 iChannel, bool ibScaled = true) const = 0; 00087 00088 virtual boost::shared_ptr<AbstractImage> 00089 CreateImageUByteFullDynamic(const AbstractImage& iImage) const = 0; 00090 00091 virtual bool SetChannel( 00092 AbstractImage& ioImage, const AbstractImage& iPlane, uint32 iChannel) const = 0; 00094 00097 00100 virtual const IImageGeometry& GetGeometryHandler() const = 0; 00101 00104 virtual const IImageAnalyse& GetAnalyseHandler() const = 0; 00105 00108 virtual const IImageOperators& GetOperatorsHandler() const = 0; 00109 00112 virtual const IImagePointProcessing& GetPointToPointHandler() const = 0; 00113 00116 virtual const IImageLocalProcessing& GetLocalToPointHandler() const = 0; 00117 00120 virtual const IImageGlobalProcessing& GetGlobalToPointHandler() const = 0; 00121 00124 virtual const IImageEdgeProcessing& GetEdgeProcessingHandler() const = 0; 00125 00128 virtual const IImageMorphologicalProcessing& GetMorphologicalHandler() const = 0; 00129 00132 virtual const IImageMiscProcessing& GetMiscHandler() const = 0; 00133 00136 virtual const IImageRasterization& GetRasterizationHandler() const = 0; 00137 00140 virtual const IImageRestoration& GetRestorationHandler() const = 0; 00142 }; 00143 00144 } // namespace Image 00145 } // namespace eLynx 00146 00147 #endif // __IImageHandler_h__