eLynx SDK
v3.3.0 C++ image processing API reference |
00001 //============================================================================ 00002 // IImageMorphologicalProcessing.h Image.Component package 00003 //============================================================================ 00004 // Usage : interface for morphological image processing 00005 // 00006 //---------------------------------------------------------------------------- 00007 // Copyright (C) 2007 by eLynx project 00008 // 00009 // This library is free software; you can redistribute it and/or 00010 // modify it under the terms of the GNU Library General Public 00011 // License as published by the Free Software Foundation; either 00012 // version 2 of the License, or (at your option) any later version. 00013 // 00014 // This library is distributed in the hope that it will be useful, 00015 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00017 // See the GNU Library General Public License for more details. 00018 //---------------------------------------------------------------------------- 00019 #ifndef __IImageMorphologicalProcessing_h__ 00020 #define __IImageMorphologicalProcessing_h__ 00021 00022 #include <elx/core/ProgressNotifier.h> 00023 #include <elx/image/ImageLib.h> 00024 #include <elx/image/ImageImpl.h> 00025 00026 namespace eLynx { 00027 namespace Image { 00028 00029 enum EMorphologicalFilterType 00030 { 00031 MFT_Min, 00032 MFT_Erode = MFT_Min, 00033 MFT_Max, 00034 MFT_Dilate = MFT_Max, 00035 MFT_Median, 00036 MFT_Open, 00037 MFT_Close, 00038 MFT_TopHat 00039 }; 00040 00041 // Forward declaration 00042 class AbstractImage; 00043 00048 00049 class ExportedByImage IImageMorphologicalProcessing 00050 { 00051 public: 00052 virtual ~IImageMorphologicalProcessing(); 00053 00063 virtual bool Apply(AbstractImage& ioImage, 00064 EMorphologicalFilterType iType, 00065 const ImageLub& iKernelMask, 00066 bool ibLuminance, uint32 iIteration, 00067 uint32 iChannelMask, ProgressNotifier& iNotifier) const = 0; 00068 00079 virtual bool Apply(AbstractImage& ioImage, 00080 EMorphologicalFilterType iType, 00081 uint32 iWidth, bool ibCircular, 00082 bool ibLuminance, uint32 iIteration, 00083 uint32 iChannelMask, ProgressNotifier& iNotifier) const = 0; 00084 00093 virtual bool ApplyMedian(AbstractImage& ioImage, 00094 uint32 iWidth, uint32 iHeight, 00095 uint32 iIteration, 00096 uint32 iChannelMask, ProgressNotifier& iNotifier) const = 0; 00097 00106 virtual bool ApplyAdaptiveMedian(AbstractImage& ioImage, 00107 uint32 iWMax, 00108 uint32 iIteration, 00109 uint32 iChannelMask, ProgressNotifier& iNotifier) const = 0; 00110 }; 00111 00112 } // namespace Image 00113 } // namespace eLynx 00114 00115 #endif // __IImageMorphologicalProcessing_h__