Basic Image AlgorithmS Library  2.8.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ImageConvertThreaded.hh
1 /*
2 This file is part of the BIAS library (Basic ImageAlgorithmS).
3 
4 Copyright (C) 2003-2009 (see file CONTACT for details)
5 Multimediale Systeme der Informationsverarbeitung
6 Institut fuer Informatik
7 Christian-Albrechts-Universitaet Kiel
8 
9 
10 BIAS is free software; you can redistribute it and/or modify
11 it under the terms of the GNU Lesser General Public License as published by
12 the Free Software Foundation; either version 2.1 of the License, or
13 (at your option) any later version.
14 
15 BIAS is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU Lesser General Public License for more details.
19 
20 You should have received a copy of the GNU Lesser General Public License
21 along with BIAS; if not, write to the Free Software
22 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 */
24 
25 #ifndef _ImageConvertThreaded_hh_
26 #define _ImageConvertThreaded_hh_
27 
28 #include <bias_config.h>
29 #ifndef BIAS_HAVE_PTHREADS
30 # error You need pthreads. please recompile BIAS with USE_PTHREADS.
31 #endif // BIAS_HAVE_PTHREADS
32 
33 #include "ImageConvert.hh"
34 
35 namespace BIAS {
36  /** \class ImageConvertThreaded
37  * \brief Converts images between different color models using multiple threads */
38  class BIASImageBase_EXPORT ImageConvertThreaded
39  : public ImageConvert
40  {
41  public:
44  /** \brief Convert using num_threads threads */
45  static int ConvertThreaded(BIAS::ImageBase &source, BIAS::ImageBase &dest,
46  enum BIAS::ImageBase::EColorModel targetColorModel,
47  bool bPlanar=false, const int num_threads = 2);
48 
49  protected:
50  // splits source image into num non overlapping destination images
51  // only num=2 is supported
52  static void SplitImage_(const ImageBase &source, const int num,
53  std::vector<ImageBase> &parts);
54 
55  static void MergeImage_(const std::vector<ImageBase>& parts,
56  ImageBase& dest);
57 
58  static void *ConvertThread_(void *arg);
59 
60  };
61 
62 
63 } // namespace
64 
65 
66 #endif // _ImageConvertThreaded_hh_
EColorModel
These are the most often used color models.
Definition: ImageBase.hh:127
class with static functions for converting all kinds of color formats and storage types ...
Definition: ImageConvert.hh:89
Converts images between different color models using multiple threads.
This is the base class for images in BIAS.
Definition: ImageBase.hh:102