latest version v1.9 - last update 10 Apr 2010 |
00001 /* 00002 * Copyright (C) 2003, 2004, 2005, 2006 00003 * Lehrstuhl fuer Technische Informatik, RWTH-Aachen, Germany 00004 * 00005 * This file is part of the LTI-Computer Vision Library (LTI-Lib) 00006 * 00007 * The LTI-Lib is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public License (LGPL) 00009 * as published by the Free Software Foundation; either version 2.1 of 00010 * the License, or (at your option) any later version. 00011 * 00012 * The LTI-Lib is distributed in the hope that it will be 00013 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty 00014 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with the LTI-Lib; see the file LICENSE. If 00019 * not, write to the Free Software Foundation, Inc., 59 Temple Place - 00020 * Suite 330, Boston, MA 02111-1307, USA. 00021 */ 00022 00023 00024 /*---------------------------------------------------------------- 00025 * project ....: LTI Digital Image/Signal Processing Library 00026 * file .......: ltiBoundaryType.h 00027 * authors ....: Peter Doerfler 00028 * organization: LTI, RWTH Aachen 00029 * creation ...: 02.04.2003 00030 * revisions ..: $Id: ltiBoundaryType.h,v 1.5 2006/02/08 12:13:18 ltilib Exp $ 00031 */ 00032 00033 #ifndef _LTI_BOUNDARYTYPE_H_ 00034 #define _LTI_BOUNDARYTYPE_H_ 00035 00036 #include "ltiIoHandler.h" 00037 00038 namespace lti { 00039 00040 /** 00041 * boundary condition type. 00042 * This type indicates how to consider/interpret the boundaries of an image. 00043 * 00044 * For this type the methods read(ioHandler&, eBoundaryType&) and 00045 * write(ioHandler&, const eBoundaryType&) are implemented. Note 00046 * that template functions read(ioHandler&, const std::string&, T&) 00047 * and write(ioHandler&, const std::string&, const T&) exist. (see 00048 * Developer's Guide for further information). 00049 */ 00050 enum eBoundaryType { 00051 Zero, /**< The boundary does not exist (only 0-value) */ 00052 Mirror, /**< The signal/image/vector is mirrored */ 00053 Periodic , /**< A periodic continuation of the signal is assumed */ 00054 Constant, /**< The last value of the border will be assumed */ 00055 NoBoundary /**< The boundary will be ignored. The effect is 00056 an unitialized border in those parts of the vector, 00057 matrix or image, where a complete filter kernel cannot 00058 be applied due to its size. 00059 Please note that the border will be left UNinitialized. 00060 It is up to you to set some value at these border, 00061 which will have a maximum height or width of the size 00062 of the filter kernel minus one. The reason for this 00063 option to exist is that some algorithms will ignore 00064 this border anyway and all other border types will 00065 spend some time calculating it */ 00066 }; 00067 00068 /** 00069 * read function for eBoundaryType. 00070 * 00071 * @ingroup gStorable 00072 */ 00073 bool read(ioHandler& handler,eBoundaryType& data); 00074 00075 /** 00076 * write function for eBoundaryType. 00077 * 00078 * @ingroup gStorable 00079 */ 00080 bool write(ioHandler& handler,const eBoundaryType& data); 00081 00082 00083 } 00084 #endif