1 /*=========================================================================
3 Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
4 l'Image). All rights reserved. See Doc/License.txt or
5 http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details.
7 This software is distributed WITHOUT ANY WARRANTY; without even
8 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9 PURPOSE. See the above copyright notices for more information.
11 =========================================================================*/
13 #ifndef CLITKIMAGEARITHMGENERICFILTER_CXX
14 #define CLITKIMAGEARITHMGENERICFILTER_CXX
17 -------------------------------------------------------------------
18 * @file clitkImageArithmGenericFilter.cxx
19 * @author David Sarrut <David.Sarrut@creatis.insa-lyon.fr>
23 -------------------------------------------------------------------*/
25 #include "clitkImageArithmGenericFilter.h"
27 //--------------------------------------------------------------------
28 clitk::ImageArithmGenericFilter::ImageArithmGenericFilter():mTypeOfOperation(0) {
29 mIsOperationUseASecondImage = false;
31 //--------------------------------------------------------------------
33 //--------------------------------------------------------------------
34 void clitk::ImageArithmGenericFilter::Update () {
37 itk::ImageIOBase::Pointer header = clitk::readImageHeader(mInputFilenames[0]);
39 // Determine dim, pixel type, number of components
40 mDim = header->GetNumberOfDimensions();
41 mPixelTypeName = header->GetComponentTypeAsString(header->GetComponentType());
42 mNbOfComponents = header->GetNumberOfComponents();
44 if (mInputFilenames.size() == 0) {
45 std::cerr << "ERROR : please provide at least a input filename." << std::endl;
47 if (mInputFilenames.size() == 1) {
48 mIsOperationUseASecondImage = false;
50 if (mInputFilenames.size() == 2) {
51 mIsOperationUseASecondImage = true;
53 if (mInputFilenames.size() > 2) {
54 std::cerr << "ERROR : please provide only 1 or 2 input filenames." << std::endl;
57 // Switch by dimension
58 if (mDim == 2) { Update_WithDim<2>(); return; }
59 if (mDim == 3) { Update_WithDim<3>(); return; }
60 if (mDim == 4) { Update_WithDim<4>(); return; }
62 std::cerr << "Error, dimension of input image is " << mDim << ", but I only work with 2,3." << std::endl;
65 //--------------------------------------------------------------------
67 #endif //define CLITKIMAGEARITHMGENERICFILTER_CXX