3
* $Id: ifiltro.cpp 3526 2011-03-16 19:56:19Z carlos $
6
* Copyright 2008-10 MetaEmotion S.L. All rights reserved.
7
* http://ginkgo-cadx.com
9
* This file is licensed under LGPL v3 license.
10
* See License.txt for details
16
#include <api/internacionalizacion.h>
17
#include <api/icontextoestudio.h>
18
//------------------------------------------------------------------------------------------
20
#define ID_F_MRIBIAS 0
21
#define ID_F_MEDIANA 1
22
#define ID_F_GAUSSIANO 2
23
#define ID_F_CURVATUREFLOW 3
25
#define ID_F_AUTONIVELES 5
28
GNC::IFiltrosManager::IFiltrosManager() {
31
m_Categorias[0] = _Std("Correction");
32
m_Categorias[1] = _Std("Smooth");
33
m_Categorias[2] = _Std("Edges");
34
m_Categorias[3] = _Std("Levels");
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"));
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")));
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")));
47
// Filtros de acondicionamiento luminico
48
m_Filtros.push_back(TipoFiltro(ID_F_AUTONIVELES, 3, _Std("Auto Levels"), _Std("Histogram equalization")));
52
GNC::IFiltrosManager::~IFiltrosManager()
57
GNC::IFiltrosManager::ListaFiltros& GNC::IFiltrosManager::GetListaFiltros()
62
GNC::IFiltrosManager::MapaCategorias& GNC::IFiltrosManager::GetMapaCategorias()
67
GNC::IFiltro* GNC::IFiltrosManager::CrearFiltro(long id)
71
return new GNC::FiltroMRIBias();
73
return new GNC::FiltroMediana();
75
return new GNC::FiltroGaussiano();
76
case ID_F_CURVATUREFLOW:
77
return new GNC::FiltroCurvatureFlow();
79
return new GNC::FiltroSobel();
80
case ID_F_AUTONIVELES:
81
return new GNC::FiltroAutoNiveles();
83
return new GNC::FiltroNulo();
87
void GNC::IFiltrosManager::DestruirFiltro(GNC::IFiltro* pFiltro)