eLynx SDK
v3.0.1 C++ image processing API reference |
00001 //============================================================================ 00002 // ImageRestorationImpl.h Image.Component package 00003 //============================================================================ 00004 // Usage : image misceallenous processing interface implementation 00005 //---------------------------------------------------------------------------- 00006 // Copyright (C) 2008 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 __ImageRestorationImpl_h__ 00019 #define __ImageRestorationImpl_h__ 00020 00021 #include <elx/image/IImageRestoration.h> 00022 00023 namespace eLynx { 00024 namespace Image { 00025 00028 00029 template <class Pixel> 00030 class ExportedByImage ImageRestorationImpl : public IImageRestoration 00031 { 00032 public: 00033 typedef Pixel Pixel_t; 00034 00035 virtual bool FastInpaint(AbstractImage& ioImage, 00036 const ImageLub& iBinaryMask, bool iUseRegion, 00037 uint32 iChannelMask, ProgressNotifier& iNotifier) const; 00038 00039 virtual bool FastMarchingInpaint(AbstractImage& ioImage, 00040 const ImageLub& iBinaryMask, uint32 iSize, bool iUseRegion, 00041 uint32 iChannelMask, ProgressNotifier& iNotifier) const; 00042 00043 virtual bool ExemplarBasedInpaint(AbstractImage& ioImage, 00044 const ImageLub& iBinaryMask, const Math::AOBBox2i& iSearchArea, 00045 uint32 iPatchSize, bool iUseRegion, uint32 iChannelMask, ProgressNotifier& iNotifier) const; 00046 00049 static bool FastInpaint(ImageImpl<Pixel>& ioImage, 00050 const ImageLub& iBinaryMask, bool iUseRegion = false, 00051 uint32 iChannelMask=CM_All, ProgressNotifier& iNotifier=ProgressNotifier_NULL); 00052 00053 static bool FastMarchingInpaint(ImageImpl<Pixel>& ioImage, 00054 const ImageLub& iBinaryMask, uint32 iSize = 7, bool iUseRegion = false, 00055 uint32 iChannelMask=CM_All, ProgressNotifier& iNotifier=ProgressNotifier_NULL); 00056 00057 static bool ExemplarBasedInpaint(ImageImpl<Pixel>& ioImage, 00058 const ImageLub& iBinaryMask, const Math::AOBBox2i& iSearchArea, 00059 uint32 iPatchSize = 7, bool iUseRegion = false, uint32 iChannelMask=CM_All, 00060 ProgressNotifier& iNotifier=ProgressNotifier_NULL); 00062 }; 00063 00064 } // namespace Image 00065 } // namespace eLynx 00066 00067 #endif // __ImageRestorationImpl_h__