~ubuntu-branches/ubuntu/wily/ginkgocadx/wily-proposed

« back to all changes in this revision

Viewing changes to src/cadxcore/main/filtering/ifiltro.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Andreas Tille
  • Date: 2011-05-02 08:09:26 UTC
  • Revision ID: james.westby@ubuntu.com-20110502080926-bql5wep49c7hg91t
Tags: upstream-2.4.1.1
ImportĀ upstreamĀ versionĀ 2.4.1.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *  
 
3
 *  $Id: ifiltro.cpp 3526 2011-03-16 19:56:19Z carlos $
 
4
 *  Ginkgo CADx Project
 
5
 *
 
6
 *  Copyright 2008-10 MetaEmotion S.L. All rights reserved.
 
7
 *  http://ginkgo-cadx.com
 
8
 *
 
9
 *  This file is licensed under LGPL v3 license.
 
10
 *  See License.txt for details
 
11
 *
 
12
 *
 
13
 */
 
14
#include "ifiltro.h"
 
15
#include "filtros.h"
 
16
#include <api/internacionalizacion.h>
 
17
#include <api/icontextoestudio.h>
 
18
//------------------------------------------------------------------------------------------
 
19
 
 
20
#define ID_F_MRIBIAS        0
 
21
#define ID_F_MEDIANA        1
 
22
#define ID_F_GAUSSIANO      2
 
23
#define ID_F_CURVATUREFLOW  3
 
24
#define ID_F_SOBEL          4
 
25
#define ID_F_AUTONIVELES    5
 
26
#define ID_F_PEGADO                 6
 
27
 
 
28
GNC::IFiltrosManager::IFiltrosManager() {
 
29
 
 
30
        // Categorias
 
31
        m_Categorias[0] = _Std("Correction");
 
32
        m_Categorias[1] = _Std("Smooth");
 
33
        m_Categorias[2] = _Std("Edges");
 
34
        m_Categorias[3] = _Std("Levels");
 
35
 
 
36
        // Filtros de tipo corrector
 
37
        //m_Filtros.push_back(TipoFiltro(ID_F_MRIBIAS, 0, "Corrector de tendencia MRI (MRI Bias Correction)", "Correccion de tendencia en Imagenes de Resonancia Magnetica"));
 
38
 
 
39
        // Filtros de tipo suavizado (orden 1)
 
40
        m_Filtros.push_back(TipoFiltro(ID_F_MEDIANA, 1, _Std("Median 3x3"), _Std("Median smooth filter")));
 
41
        m_Filtros.push_back(TipoFiltro(ID_F_GAUSSIANO, 1, _Std("Gaussian 3x3"), _Std("Gaussian smooth filter")));
 
42
        m_Filtros.push_back(TipoFiltro(ID_F_CURVATUREFLOW, 1, _Std("Curvature Flow"), _Std("Edge preserving smooth filter")));
 
43
 
 
44
        // Filtros de tipo borde (orden 2)
 
45
        m_Filtros.push_back(TipoFiltro(ID_F_SOBEL, 2,  _Std("Sobel edges 3x3"), _Std("Sobel filter 3x3")));
 
46
 
 
47
        // Filtros de acondicionamiento luminico
 
48
        m_Filtros.push_back(TipoFiltro(ID_F_AUTONIVELES, 3,  _Std("Auto Levels"), _Std("Histogram equalization")));
 
49
 
 
50
}
 
51
 
 
52
GNC::IFiltrosManager::~IFiltrosManager()
 
53
{
 
54
 
 
55
}
 
56
 
 
57
GNC::IFiltrosManager::ListaFiltros& GNC::IFiltrosManager::GetListaFiltros()
 
58
{
 
59
        return m_Filtros;
 
60
}
 
61
 
 
62
GNC::IFiltrosManager::MapaCategorias& GNC::IFiltrosManager::GetMapaCategorias()
 
63
{
 
64
        return m_Categorias;
 
65
}
 
66
 
 
67
GNC::IFiltro* GNC::IFiltrosManager::CrearFiltro(long id)
 
68
{
 
69
        switch (id) {
 
70
                case ID_F_MRIBIAS:
 
71
                        return new GNC::FiltroMRIBias();
 
72
                case ID_F_MEDIANA:
 
73
                        return new GNC::FiltroMediana();
 
74
                case ID_F_GAUSSIANO:
 
75
                        return new GNC::FiltroGaussiano();
 
76
                case ID_F_CURVATUREFLOW:
 
77
                        return new GNC::FiltroCurvatureFlow();
 
78
                case ID_F_SOBEL:
 
79
                        return new GNC::FiltroSobel();
 
80
                case ID_F_AUTONIVELES:
 
81
                        return new GNC::FiltroAutoNiveles();
 
82
                default:
 
83
                        return new GNC::FiltroNulo();
 
84
        }
 
85
}
 
86
 
 
87
void GNC::IFiltrosManager::DestruirFiltro(GNC::IFiltro* pFiltro)
 
88
{
 
89
        delete pFiltro;
 
90
}