]> Creatis software - clitk.git/blob - segmentation/clitkFilterWithAnatomicalFeatureDatabaseManagement.cxx
Remove transparency for screenshot
[clitk.git] / segmentation / clitkFilterWithAnatomicalFeatureDatabaseManagement.cxx
1 /*=========================================================================
2   Program:   vv                     http://www.creatis.insa-lyon.fr/rio/vv
3
4   Authors belong to: 
5   - University of LYON              http://www.universite-lyon.fr/
6   - Léon Bérard cancer center       http://www.centreleonberard.fr
7   - CREATIS CNRS laboratory         http://www.creatis.insa-lyon.fr
8
9   This software is distributed WITHOUT ANY WARRANTY; without even
10   the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11   PURPOSE.  See the copyright notices for more information.
12
13   It is distributed under dual licence
14
15   - BSD        See included LICENSE.txt file
16   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
17   ===========================================================================**/
18
19 // clitk
20 #include "clitkFilterWithAnatomicalFeatureDatabaseManagement.h"
21
22 //--------------------------------------------------------------------
23 clitk::FilterWithAnatomicalFeatureDatabaseManagement::
24 FilterWithAnatomicalFeatureDatabaseManagement() 
25 {
26   m_AFDB = NULL; 
27   SetAFDBFilename("default.afdb");
28   SetAFDBPath("./");
29   DisplayUsedStructuresOnlyFlagOff();
30 }
31 //--------------------------------------------------------------------
32
33
34 //--------------------------------------------------------------------
35 void clitk::FilterWithAnatomicalFeatureDatabaseManagement::WriteAFDB() 
36 {
37   GetAFDB()->SetFilename(GetAFDBFilename());
38   GetAFDB()->Write();
39 }
40 //--------------------------------------------------------------------
41
42     
43 //--------------------------------------------------------------------
44 void clitk::FilterWithAnatomicalFeatureDatabaseManagement::LoadAFDB() 
45 {
46   GetAFDB()->SetFilename(GetAFDBFilename());
47   GetAFDB()->SetPath(GetAFDBPath());
48   try {
49     GetAFDB()->Load();
50   } catch (clitk::ExceptionObject e) {
51     std::cout << "******* Could not read '" << GetAFDBFilename() << "', create one AFDB. ********" << std::endl;
52     GetAFDB();
53   }
54 }
55 //--------------------------------------------------------------------
56
57
58 //--------------------------------------------------------------------
59 clitk::AnatomicalFeatureDatabase::Pointer clitk::FilterWithAnatomicalFeatureDatabaseManagement::GetAFDB() 
60 {
61   if (!m_AFDB) {
62     m_AFDB = clitk::AnatomicalFeatureDatabase::New();
63   }
64   return m_AFDB;
65 }
66 //--------------------------------------------------------------------
67
68
69 //--------------------------------------------------------------------
70 void clitk::FilterWithAnatomicalFeatureDatabaseManagement::
71 AddUsedStructures(std::string station, std::string structure)
72 {
73   if (!GetDisplayUsedStructuresOnlyFlag()) return;
74   std::cout << station << "\t" << structure;
75   bool founded = true;
76   bool tag = GetAFDB()->TagExist(structure);
77   if (tag) {
78     typedef itk::Image<uchar, 3> ImageType;
79     founded = GetAFDB()->CheckImage<ImageType>(structure);
80     if (!founded) { 
81       std::cout << " \t Image not exist in DB ";
82       std::cout << "<" << GetAFDB()->GetTagValue(structure) << "> ";
83     }
84   }
85   if (!tag) std::cout << " \t Tag not found in DB";
86   std::cout << std::endl;
87 }
88 //--------------------------------------------------------------------