DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN...
Transcript of DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN...
0
1
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
CONTENIDO
1. RESUMEN ...................................................................................................................................... 3
2. INTRODUCCIÓN .......................................................................................................................... 3
3. OBJETIVOS ................................................................................................................................... 5
3.1 GENERAL .............................................................................................................................. 5
3.2 ESPECÍFICOS DE LA ETAPA ............................................................................................... 5
4. JUSTIFICACIÓN .......................................................................................................................... 5
5. ANTECEDENTES TEÓRICOS ................................................................................................... 6
5.1 RAYOS X ................................................................................................................................ 6
5.2 CIRUGÍA ORTOPÉDICA ...................................................................................................... 6
5.3 SISTEMAS CAD Y CAOS ..................................................................................................... 7
5.4 PROCESAMIENTO DIGITAL DE IMÁGENES MÉDICAS ................................................. 8
5.4.1 ESTÁNDAR DICOM ..................................................................................................... 8
5.4.2 REGION OF INTEREST (ROI) ......................................................................................... 9
5.4.3 SEGMENTACIÓN ........................................................................................................ 9
5.5 PROCESAMIENTO DE IMÁGENES EN LA PLANEACIÓN Y REALIZACIÓN DE LA
CIRUGÍA ORTOPÉDICA .................................................................................................... 10
5.5.1 ADQUISICIÓN DE LA IMAGEN ................................................................................... 10
5.5.2 CALIBRACIÓN DE LA IMAGEN .................................................................................. 10
5.5.3 MEJORAMIENTO DE LA IMAGEN ............................................................................... 11
5.5.4 SEGMENTACIÓN Y ENSAMBLAJE DE LA FRACTURA .................................................. 11
5.5.5 MEDIDAS Y ANOTACIONES ...................................................................................... 12
5.5.6 COLOCACIÓN Y DEFORMACIÓN DEL IMPLANTE ........................................................ 13
5.5.7 LIBRERÍA DE IMPLANTES ......................................................................................... 13
6. METODOLOGÍA ........................................................................................................................ 14
6.1 INTERFAZ GRÁFICA ......................................................................................................... 14
6.2 SELECCIÓN DE LA ROI ..................................................................................................... 15
6.3 RASTERIZACIÓN DEL TRIÁNGULO ............................................................................... 17
6.3.1 ALGORITMO DE OBTENCIÓN DEL RECTÁNGULO ....................................................... 17
6.3.2 PSEUDOCÓDIGO ....................................................................................................... 19
6.3.2.1 MÉTODO OBTENER TRIÁNGULO ............................................................... 19
6.3.2.2 MÉTODO BARRIDO ................................................................................... 22
6.4 TRIANGULACIÓN POLIGONAL ...................................................................................... 23
6.4.1 LAS TRES CONDICIONES........................................................................................... 25
6.4.1.1 CONDICIÓN DE CONVEXIDAD ................................................................... 25
6.4.1.2 CONDICIÓN DE CONCAVIDAD ................................................................... 27
6.4.1.3 CONDICIÓN DE NO INTERSECCIÓN ............................................................ 28
6.4.2 RECORRIDO A TRAVÉS DEL POLÍGONO ..................................................................... 30
6.4.2.1 LA VARIABLE I, SU INCREMENTO Y LA REASIGNACIÓN DE PUNTOS .......... 30
6.4.2.2 LA VARIABLE K, SU INCREMENTO Y LA REASIGNACIÓN DE PUNTOS ......... 33
6.4.2.3 LA VARIABLE REV, SU DOBLE INCREMENTO Y LA CREACIÓN DE UN
SUBPOLÍGONO ......................................................................................... 37
6.4.3 PSEUDOCÓDIGO ....................................................................................................... 43
7. RESULTADOS ............................................................................................................................. 45
8. CONCLUSIONES ........................................................................................................................ 46
9. TRABAJO A FUTURO ............................................................................................................... 47
2
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
10. APÉNDICES ................................................................................................................................. 48
10.1.1 CLASES DEL PROGRAMA .......................................................................................... 48
10.1.1.1 CLASE PRINCIPAL .................................................................................... 48
10.1.1.2 CLASE DESPLIEGUE_IMAGEN ................................................................... 48
10.1.1.3 CLASE INTERFAZ ..................................................................................... 49
10.1.1.4 CLASE POINT2D ....................................................................................... 50
10.1.1.5 CLASE PANEL_PREVIA ............................................................................. 50
10.1.1.6 OBSERVACIÓN FINAL ............................................................................... 50
11. BIBLIOGRAFÍA .......................................................................................................................... 51
3
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
RESUMEN
El proyecto se enfoca en el desarrollo de un algoritmo de triangulación llevado a cabo sobre los
pixeles de la imagen con el fin de poder seleccionar áreas de la misma de proporciones
irregulares. Dichas áreas serán sometidas a un procesamiento principalmente enfocado en
transformaciones geométricas (rotación y translación) con el fin de obtener una herramienta
digital de alineación de fracturas que servirá como simulador para la planeación de
procedimientos quirúrgicos ortopédicos.
En esta etapa del proyecto se describe el algoritmo para poder llevar a cabo el despliegue de la
imagen en pantalla, así como los algoritmos de obtención de los píxeles y de triangulación de los
mismos, así como su almacenamiento en un vector de imágenes. Estos algoritmos son los que
fueron diseñados para esta parte proyecto, y fueron elaborados sobre la base establecida del
lenguaje de programación conocido como JAVATM
.
INTRODUCCIÓN
La planeación quirúrgica ortopédica es imprescindible en la actualidad y es una fase importante
en el tratamiento del paciente; sirve de apoyo a los cirujanos ortopédicos para poder elegir la
prótesis o implante óptimo, mejora los resultados quirúrgicos y evita problemas inesperados [1].
A partir de la planeación quirúrgica, se han creado varias herramientas con el fin de mejorarla o
perfeccionarla; por ello a través del tiempo, las herramientas y los protocolos de planeación han
ido evolucionando a la par del desarrollo tecnológico. Una de las herramientas más significativas
ha sido el uso y modificación (procesamiento) de imágenes médicas tomadas desde el interior
mismo del paciente.
Durante la década pasada, las computadoras revolucionaron la forma de trabajar con las
imágenes médicas. Actualmente se han implementado sistemas capaces de almacenar, recuperar,
distribuir y presentar imágenes en una red de ordenadores; estos sistemas son llamados sistemas
RIS/PACS (Radiological Information Systems/Picture Archiving and Communication System) y
desde su creación han tenido un efecto significativo en todos los aspectos en el tratamiento de
imágenes médicas, facilitando su accesibilidad y su manejo [2].
En la actualidad, la planeación de las cirugías ortopédicas se lleva a cabo en varios hospitales por
medio del manejo de imágenes digitales que mejoran en calidad y resolución a las utilizadas en
la década pasada, y son utilizadas en aplicaciones clínicas además de poseer una mejor
disponibilidad, eficacia y ahorro de tiempo en su adquisición [3,4].
4
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
La más remota forma de poder planear una cirugía ortopédica con la ayuda de imágenes
adquiridas para poder obtener una perspectiva en el interior del paciente y aún vigente son los
rayos X, que fueron aplicados a la medicina desde que su descubridor, Wilhelm Röntgen,
encontró que los rayos X permiten captar las estructuras óseas del cuerpo humano (fig. 1a). A
partir de ese momento se han establecido como una herramienta para la planeación de la cirugía
ortopédica y actualmente son imprescindibles [2]. La mayoría de los médicos que obtienen las
radiografías en medios físicos se han venido apoyando en el negatoscopio y en las plantillas de
las prótesis impresas en acetatos para poder sobreponerlas a la placa radiográfica con el fin de ir
comparando el tipo y el tamaño de la prótesis. Uno de los inconvenientes de hace esto se
presenta cuando viene la inconformidad del médico frente a la imagen física presentada, lo que
ocasiona que se proceda a tomar una nueva placa radiográfica, lo cual expone al paciente a otra
dosis de radicación. En consecuencia, estos procedimientos generan costos en tiempo y recursos.
Adicionalmente las placas tomadas son almacenadas en archivos físicos o son entregadas
directamente a los pacientes y por lo tanto son propensas a ser extraviadas, desechadas o
deterioradas.
El desarrollo de los sistemas RIS/PACS actualmente nos ha permitido almacenar bloques de
información descriptiva, datos de pixeles y otros tipos de información acerca del paciente
almacenado en formato digital. Esta información en forma de pixeles nos permite poder tener un
elemento de apreciación visual acerca del paciente, en pocas palabras en forma de imágenes,
mismas que deben cumplir con ciertos requisitos necesarios para poder ser tomadas en cuenta
como una herramienta de apoyo médico. El estándar más conocido para describir el tipo de
características que debe poseer una imagen médica es el estándar DICOM (Digital Imaging and
Communication in Medicine) [5]. Los objetos DICOM poseen metadatos incluyen la información
del paciente, la modalidad, los parámetros de adquisición, la resolución de la imagen y las
mediciones reales de los estudios (fig. 1b) [6].
Figura 1: a) Izquierda: Primera radiografía tomada por Röntgen en 1896 a la mano de su esposa; b) Derecha: Imagen digital
con estándar DICOM.
5
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
OBJETIVOS
GENERAL
El objetivo es desarrollar un algoritmo de triangulación de la imagen para poder llevar a cabo el
proceso de segmentación de la misma. Esto servirá como base para desarrollar una herramienta
que computacional que permita auxiliar a los cirujanos en la planeación de la cirugía ortopédica
ESPECÍFICOS DE LA ETAPA
Diseñar el sistema computacional en programación orientada a objetos, acotando y
definiendo requerimientos en el proceso.
Desarrollar el algoritmo de triangulación para la segmentación de la imagen.
Almacenar la información de los pixeles de la región en un vector.
Implementar el sistema en el lenguaje de programación JAVATM
.
JUSTIFICACIÓN
El tratamiento quirúrgico ortopédico comienza desde la planeación quirúrgica, por ello existe la
necesidad de contar con una herramienta de apoyo que permita a los cirujanos planear sus
procedimientos para poder realizar las correcciones necesarias y para seleccionar los implantes
o prótesis que requiera el paciente. La herramienta de planeación quirúrgica ortopédica se
realizará con el fin de cubrir esta necesidad, además de contar con una mejor precisión en las
mediciones; de efectuar una planeación de forma más cómoda y práctica, de manera que los
ajustes sean adecuados para el paciente deseado, esto implica tener una mejor disponibilidad de
las herramientas de planeación quirúrgica sin recurrir a impresiones en papel fotográfico
reduciendo costos y acelerando el proceso de atención al paciente.
6
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
ANTECEDENTES TEÓRICOS
RAYOS X
La más remota forma de poder planear una cirugía ortopédica con la ayuda de imágenes
adquiridas para poder obtener una perspectiva desde el interior del paciente y actualmente
vigente son los rayos X, que se han establecido como una herramienta obligatoria para la
planeación de una cirugía ortopédica [2].
Los rayos X son radiaciones electromagnéticas cuya longitud de onda va desde unos 10 nm hasta
0,001 nm (1 nm o nanómetro equivale a 10-9
m). Cuanto menor es la longitud de onda de los
rayos X, mayores son su energía y poder de penetración. Los rayos de mayor longitud de onda,
cercanos a la banda ultravioleta del espectro electromagnético, se conocen como rayos X
blandos; los de menor longitud de onda, que están más próximos a la zona de rayos gamma o
incluso se solapan con ésta, se denominan rayos X duros. Tanto la luz visible como los rayos X
se producen a raíz de las transiciones de los electrones atómicos de una órbita a otra. Mientras
que la luz visible corresponde a transiciones de electrones externos, los rayos X corresponden a
transiciones de electrones internos [7].
Su descubrimiento se dio en 1895, cuando el físico Wilhelm Conrad Röntgen experimentaba con
los tubos de Hittorff-Crookes y la bobina de Ruhmkorff para investigar la fluorescencia violeta
que producían los rayos catódicos. La noticia del descubrimiento de los rayos X se divulgó con
mucha rapidez en el mundo y no se hizo esperar por mucho tiempo. El descubrimiento le valió a
Röntgen el galardón del premio Nobel de Física en el año de 1901[8].
En la medicina, los Rayos X son una técnica no invasiva que permite ver a los pacientes por
dentro. Los rayos generados por el tubo de rayos X y redirigidos al paciente lo atraviesan y se
impactan en un fragmento de película fotográfica que guarda dentro una caya hermética a la luz.
El hueso absorbe más rayos X que la carne del mismo grosor y por lo tanto la película revela la
estructura ósea como una zona clara.
CIRUGÍA ORTOPEDICA
Tras el descubrimiento de los rayos X a finales del siglo XIX, los primeros años del siglo XX
pueden considerarse como una época crucial de la Cirugía Ortopédica marcado su comienzo por
el descubrimiento de los anteriores mencionados. En ese momento la cirugía ortopédica empieza
a considerarse una auténtica especialidad con entidad propia. La Cirugía Ortopédica, al igual que
muchas otras especialidades se ha desarrollado en base a la necesidad. Una necesidad de corregir
la deformidad, restaurar la función y aliviar el dolor. Los cirujanos ortopédicos han desarrollado
la capacidad de prevenir la pérdida sustancial de la función corporal y en algunos casos pueden
7
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
evitar la muerte del paciente. Los médicos cirujanos tratan de pulir las técnicas quirúrgicas ya
establecidas, con el fin de asegurar que el paciente alcance una condición óptima en el menor
tiempo posible utilizando el método más seguro disponible, para ellos se valen de todas las
herramientas actuales con las que puedan contar para dicho propósito siendo la imagenología
médica por Rayos X su principal herramienta para planear sus procedimientos.
El tiempo que un cirujano ortopedista le dedique a efectuar una cuidadosa planeación tiene
importancia decisiva y a menudo llega a determinar el fracaso o el éxito de un procedimiento
quirúrgico [9]. Uno de los procedimientos clásicos utilizados por el cirujano son los calcos que
les ayudan a entender la complejidad de la fractura, descubrir la forma de su reducción y el uso
de los principios biomecánicos y la correcta elección del implante adecuado (fig. 2). Con base en
ellos, se sobreponen las “plantillas”, que no es otra cosa más que unas bases construidas por un
fabricante bajo diversos materiales y con diferentes medidas que sirven de guía exacta en la
selección de los mismos para una reducción y su fijación interna.
Fig.2. Elaboración de una calca por un cirujano ortopedista.
SISTEMAS CAD Y CAOS
Actualmente, el uso de computadoras para asistir al médico ortopedista en la planeación de la
cirugía quirúrgica ortopédica con la ayuda de las aplicaciones en los sistemas de administración
de imágenes médicas (PACS), así como en el reporte de las mismas (RIS), es una práctica
actualmente bien establecida en muchos hospitales y clínicas [10].
El término CAD (Computer Assisted Detection) se refiere a todo aquel software que identifica
una o varias características particulares dentro de la imagen médica y las señala para la atención
del médico con el fin de asistirle en el diagnóstico. El objetivo principal de los sistemas CAD, es
incrementar la detección de patologías reduciendo la tasa de falsos negativos debido a que
existan omisiones de observación. Los algoritmos utilizados en los sistemas CAD, buscan las
mismas características que buscaría el médico durante el análisis de la imagen [11].
Diversos softwares de apoyo al cirujano para la reducción de fracturas se han venido usado
desde hace algunos años [12]. Los sistemas CAD para la planificación preoperatoria de cirugías
del sistema musculo-esquelético son conocidos como CAOS (Computer Aided Orthopaedic
8
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
Surgery) los cuales son foco de investigación en diversas partes del mundo [13]. Una gran parte
de estos sistemas están diseñados con el fin de garantizar que el cirujano sea capaz de conseguir
la posición y tamaño del implante necesario para la cirugía [14]. Esto implica que la planeación
de la cirugía ortopédica es mucho más precisa que los métodos de calcas y plantillas.
PROCESAMIENTO DE IMÁGENES MÉDICAS DIGITALES
El procesamiento de imágenes médicas abarca toda una gama de técnicas que existen para poder
manipular y modificar las imágenes en formato digital de diversas maneras [15]. Estas técnicas
tienen como fin destacar alguna serie de elementos que conforman el panorama de la imagen,
con el objetivo de facilitar su posterior análisis, ya sea realizado por parte de un usuario o por un
sistema de visión artificial. En general las técnicas de procesamiento son aplicadas cuando se
resulta necesario realizar o modificar una imagen para mejorar su apariencia o para destacar
algún aspecto de la información contenida en la misma, o cuando se requiere medir, contrastar o
clasificar algún elemento contenido dentro de la misma. También se utilizan técnicas de
procesamiento cuando se requiere hacer la combinación o reorganización de varias imágenes o
regiones de ellas [16].
La imagenología médica considera un conjunto de modalidades de adquisición de imágenes
médicas, las cuales se diferencian en cuanto a la naturaleza de los principios físicos involucrados
en el proceso de adquisición, existiendo entre ellas diferencias también de acuerdo a la
aplicación médica asignada. Las modalidades más comunes en la imagenología médica son los
rayos X, la tomografía computarizada, la resonancia magnética nuclear, la imagenología nuclear
y la imagenología por ultrasonido. A continuación describiremos algunos términos a utilizar en
el transcurso del presente informe, relacionados al procesamiento de imágenes médicas, con el
fin de conocer a fondo su significado para la mejor comprensión del contenido del informe.
ESTÁNDAR DICOM
Como ya se había mencionado, DICOM (Digital Imaging and Communication in Medicine) es el
estándar para transferir imágenes radiológicas y otra información médica entre computadoras
[17]. El estándar describe el formato de archivos y la especificación de los datos primordiales de
un paciente en la imagen así como el encabezado requeridos, describiendo un lenguaje común a
distintos sistemas médicos.
Un solo archivo de DICOM contiene una cabecera que almacena la información sobre el nombre
del paciente, el tipo de exploración, y otros datos importantes relacionados con el paciente,
además de contener la información de todos los datos de la imagenología del mismo, tanto en
dos como en tres dimensiones.
9
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
REGIÓN OF INTEREST (ROI)
La definición de la ROI requiere de la segmentación de la imagen, ya que de ella se extrae
únicamente la información necesaria al médico. Este proceso se puede llevar a cabo usando
metodologías manuales o semiautomáticas, donde el usuario interactúa con el sistema o con
métodos totalmente automatizados. El crecimiento por regiones es un ejemplo de un método
semiautomático, mientras que los modelos de contornos activos, o la umbralización se utilizan
como métodos automatizados. La extracción de características se refiere a las mediciones
cuantitativas de la imagen médica, que son usadas para la toma de decisiones referentes a alguna
patología o estructura de un tejido [18], en nuestro caso será utilizada para delimitar estructuras
óseas correspondientes a las fracturas.
El procesamiento de las imágenes para obtener la ROI se realiza desarrollando un barrido pixel
por pixel dentro de la región de la imagen a procesar. Si la transformación a aplicar depende solo
de los valores originales de los píxeles, en su implantación, puede resultar de utilidad el uso de
tablas de búsqueda que son calculadas previamente para arrojar un valor de salida a partir de uno
de entrada (por ejemplo, matrices o máscaras que transforman la imagen original); o por el
contrario se considera además del valor del pixel, su posición puede resultar necesario utilizar
fórmulas o combinaciones de las mismas con tablas de búsqueda [19]. De manera que estas
pueden o no modificar la imagen a partir de la región contenida en ella.
SEGMENTACIÓN
La segmentación de imágenes se define como la partición de una imagen en regiones
constituyentes no solapadas, las cuales son homogéneas con respecto a alguna característica,
como puede ser la intensidad o la textura [20]. Idealmente un método de segmentación encuentra
aquellos conjuntos que corresponden a distintas estructuras, y en el caso de las imágenes médicas,
los que corresponden a regiones anatómicas de interés dentro de la imagen. Las técnicas de
segmentación, se pueden dividir en tres grandes grupos:
1. Basadas en región
2. Basadas en bordes
3. Clasificación
La segmentación basada en regiones explota la similitud entre las regiones que conforman la
imagen. La idea principal consiste en clasificar la imagen en un determinado número de regiones
o clases. De tal forma que debemos estimar a que clase pertenece cada píxel o vóxel.
El principio básico de este tipo de algoritmos [21] es la expansión de un píxel semilla para llenar
regiones coherentes de la imagen (es decir, regiones con similitud entre pixeles), una vez que
tenemos el píxel semilla definimos una medida de similitud, y un umbral, la región de interés se
10
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
forma a partir de la incorporación de pixeles que satisfacen las condiciones establecidas. El
proceso termina cuando no hay más elementos que cumplan las condiciones.
Las técnicas basadas en bordes, generalmente son usadas para buscar fronteras – explicitas o
implícitas- entre regiones, dichas fronteras o límites corresponden a diferentes tipos de tejido.
Los métodos más comunes para este tipo de segmentación son, la detección de cresta y la
detección de bordes. Las técnicas de clasificación son métodos de reconocimiento de patrones,
que buscan particionar un espacio característico derivado de la imagen mediante el uso de
etiquetas predeterminadas [20]. Un espacio característico es el rango de espacio de cualquier
función en la imagen, con la característica más común. Un histograma es un ejemplo de espacio
característico en una dimensión.
PROCESAMIENTO DE IMÁGENES EN LA PLANEACIÓN Y
REALIZACIÓN DE LA CIRUGÍA ORTOPÉDICA
ADQUISICIÓN DE LA IMAGEN
Siendo la imagen la base principal del sistema y el área de trabajo del médico traumatólogo, lo
primero es obtenerla a partir de los parámetros y la modalidad sobre la cual se tratan las fracturas.
Una vez tomada la radiografía y empleando un sistema PACS obtenemos la imagen radiográfica
en formato digital, con los requerimientos médicos necesarios para poderla usar como
herramienta de planeación según el estándar DICOM [5].
CALIBRACIÓN DE LA IMAGEN
Una vez habiendo obtenido la imagen del paciente, comienza la fase en la que se realizan las
medidas cuantitativas dentro de la imagen. Las medidas son aproximadas y expresadas en
milímetros, tomado en cuenta también la orientación anatómica de la toma (antero-posterior o
lateral), e indicando si la fractura se refiere a cierto lado o lados de las partes del cuerpo. Una vez
identificada la sección anatómica y la orientación se requiere de un objeto guía presente en el
momento de adquisición que tenga medidas conocidas y que sirva de patrón para el cálculo de
las proporciones de la fractura del hueso.
Uno de los aspectos importantes a considerar es el de la magnificación [22], ya que la toma que
se adquiere de un paciente podría aparecer en mayor proporción que la realidad. El factor de
magnificación dependerá tanto de la distancia entre el punto focal del tubo de rayos X.
11
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
MEJORAMIENTO DE LA IMÁGEN
Una vez adquirida y calibrada la imagen, el médico radiólogo puede modificar los parámetros de
la imagen para permitirle mejorar la calidad visual de la misma; entre ellos se encuentra el brillo,
el contraste o la inversión de colores, entre otros. Además de ellos existen otras transformaciones
sobre la imagen para poder llevar a cabo un mejor análisis como son:
CORTAR LA IMAGEN. Lo cual permite extraer una imagen de menor dimensión
(subimagen) con el objetivo de eliminar de la imagen lo irrelevante para la planificación
TRANSFORMACIONES DE ROTACIÓN Y TRANSLACIÓN. Esto debido a las
características de adquisición de la imagen o por la necesidad de rotarla para alinearla con
respecto a algún eje cartesiano para facilitar su manipulación.
CAMBIAR EL RADIO ASPECTO. La proporción entre el ancho y el alto se pueden
modificar para ajustar la imagen, ajustando los escalamientos y permitirá facilitar la
planificación preoperatoria.
SEGMENTACIÓN Y ENSAMBLAJE DE LA FRACTURA
En la reducción de una fractura se requiere extraer los fragmentos del hueso presente. Una vez
seleccionados, el traumatólogo debe ensamblarlos y colocarlos en sus posiciones correctas y
completar la reducción de la fractura.
La selección de los fragmentos de la fractura de la imagen, requiere un proceso de segmentación
[23], donde se separen dichos fragmentos del hueso a tratar. Los algoritmos existentes para la
segmentación automática de imágenes de rayos X no son triviales ya que no existe un
procedimiento estándar para su ejecución.
Existen diversas técnicas de segmentación de imágenes médicas, entre las que destacan: los
modelos deformables, las plantillas deformables paramétricas, los modelos de distribución de
puntos, las plantillas gráficas, las plantillas basadas en esqueletos, entre otras técnicas [24].
Dichas técnicas no son completamente efectivas para todos los tipos de imágenes. Para conseguir
una segmentación adecuada se emplean varias técnicas y/o se aplican modificaciones acorde con
la imagen en cuestión.
Otra manera de extraer los fragmentos es emplear la segmentación manual, la cual consiste en
delinear los bordes de los fragmentos e ir construyendo un polígono que encierre el fragmento de
hueso a través de una serie puntos guía sobre el contorno del fragmento, unidos por segmentos
formando un polígono irregular (fig. 3). El siguiente paso es colocar el fragmento en su posición
anatómicamente correcta para llevar a cabo la reducción de la fractura.
12
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
Fig. 3. Fragmento de hueso de una fractura extraído manualmente.
MEDIDAS Y ANOTACIONES
Una vez calibrada la imagen, es posible realizar mediciones de la anatomía en la imagen
empleando varias herramientas. Las mediciones dentro de una imagen de rayos X son
importantes para el tratamiento de un paciente, ya que permite obtener las dimensiones de los
segmentos de una fractura, la longitud de los huesos y los ángulos entre dos secciones, entre
otros. Las medidas normalmente son realizadas en escala de milímetros o en la escala definida en
la etapa de calibración. Algunas herramientas de calibración son:
INTERLINEA. Nos permite medir ángulos existentes entre dos líneas de una imagen.
Esta herramienta es muy útil cuando se encuentra trabajando con ángulos muy pequeños
en la imagen.
ÁNGULO. Mide ángulos dentro de la imagen, basado en un punto de origen y dos líneas
que parten del origen.
REGLA. Se emplea para medir regiones de la imagen empleando una línea para dicha
labor.
CÍRCULO. Permite realizar un círculo definido por un centro y un diámetro, Si la
imagen no se encuentra calibrada, la imagen del círculo nos presentará en pantalla un
valor dado en pixeles.
Dentro de la planeación quirúrgica ortopédica, las anotaciones son sumamente útiles e
importantes ya que nos permiten colocar información de interés dentro de la imagen médica en
formato de texto con el fin de complementar la información obtenida o para anotar observaciones
apreciadas por el médico radiólogo.
13
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
COLOCACIÓN Y DEFORMACIÓN DEL IMPLANTE
Una vez obtenidos los segmentos de hueso de la fractura y haber realizado la reducción de la
misma, a decisión del traumatólogo se colocan los implantes (templates) para realizar la fijación
del hueso como parte del tratamiento quirúrgico. Esto se hace dependiendo del tipo de fractura,
posición anatómica, edad del paciente, entre otros factores. Se procede a seleccionar el template
adecuado de una librería de implantes.
Un hueso fracturado debe ser colocado y fijado cuidadosamente en la posición adecuada hasta
que sea lo suficientemente fuerte como para soportar el peso. Hasta el siglo pasado, los médicos
se han basado en emplear solamente yesos o férulas para apoyar el hueso por fuera del cuerpo
por medio de la fijación externa, pero el desarrollo en el campo de la cirugía redujo el riesgo de
infección, permitiendo que los médicos pudiesen trabajar directamente al hueso y colocarle
implantes (fijación interna). Los nuevos implantes como alambres, placas, barras, clavijas, pines,
clavos y tornillos están hechos de materiales como acero inoxidable, cobalto y titanio que no
solamente son duraderos, sino que también son lo suficientemente fuertes y flexibles para apoyar
el hueso. Estos materiales también son biocompatibles y rara vez causan una reacción alérgica al
paciente [1].
Los sistemas CAOS deben proveer una librería con una gama de implantes en la cual un médico
cirujano pueda seleccionar uno o varios de ellos para poder ser colocados en la(s) fractura(s) en
cuestión. En muchos casos es necesario moldear o deformar el implante tal que pueda ser
anatómicamente correcto y se adapte a alguna sección del cuerpo del paciente, particularmente al
hueso fracturado. Este procedimiento se realiza antes del procedimiento quirúrgico aplicando
fuerza mecánica.
El warping o deformación de la imagen digital nos sirve para poderse lograr en base a una
imagen digital basada en vectores y curvas característicos, una metamorfosis de la imagen nos
permite un mejor acoplamiento de la plantilla digital que contiene el implante con la imagen
médica DICOM del paciente, no olvidando que a fin de cuentas el implante es solamente una
imagen digital [25].
LIBRERÍA DE IMPLANTES
La librería de implantes es el conjunto de templates o plantillas de traumatología clasificadas
bajo criterios médicos. De esta manera se escoge el tipo de implante, su material, sus
dimensiones y el fabricante. El proceso de selección del implante adecuado es un proceso que
depende del médico traumatólogo. En formato digital, una librería de implantes es un conjunto
de imágenes organizadas bajo cierta estructura que permitan su rápido acceso junto con una
interfaz amigable al médico usuario. Una base de datos es la forma de almacenamiento
recomendada para la librería.
14
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
METODOLOGÍA
INTERFAZ GRÁFICA
El diseño de la interfaz gráfica consta de los componentes necesarios para poder visualizar la
imagen, procesarla de acuerdo a los requerimientos del proyecto pudiendo así poder realizar la
selección de regiones de interés y por último guardar el resultado de la misma (fig. 4).
Dentro de la interfaz contamos con la barra de herramientas, encargada de poder importar desde
directorio la imagen que el usuario seleccione para su procesamiento y poderla desplegar en
pantalla en el panel de procesamiento. La barra de herramientas además cuenta con la opción de
guardar la imagen resultante después de su procesamiento. La interfaz consta además de dos
paneles, el primero que se ubica en la parte inferior de la interfaz, es el encargado de desplegar la
imagen y se utiliza también como el área donde se realiza el procesamiento digital necesario,
mientras que el segundo encontrado en la parte superior izquierda es el panel que despliega la
imagen del contorno en blanco y negro del polígono formado por el usuario para delimitar la
región de procesamiento; el polígono se utiliza como referencia para poder realizar la
comprobación de la condición de intersección, que más adelante se explicará con más detalle (fig.
4).
Por último, el slider o deslizador y el botón rotar son los encargados de la realizar la rotación del
área seleccionada por el usuario en los que se realiza la transformación geométrica de rotación
(fig. 4). Mientras que el primero selecciona la cantidad de grados que se rotará la figura, el
segundo se encargará finalmente de mostrarnos el resultado de la rotación en la subimagen
creada por la región seleccionada.
15
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
Fig.4. Interfaz gráfica de la aplicación y la descripción de sus componentes presentes.
SELECCIÓN DE LA ROI
Para realizar la selección de la ROI se necesitó de un algoritmo en lenguaje JAVATM
encargado
de indicarnos las coordenadas en pantalla del panel de la imagen. Por medio de las paqueterías
importadas encargadas de trabajar los eventos del mouse, fue posible la selección de puntos
dentro del panel de trabajo de la aplicación, de manera que al indicar el pixel en el que se
encontraba posicionado y al hacer un solo “click” puede ser capaz de seleccionar e indicar el
punto al colorear el lugar indicado y seguir con el ratón sucesivamente seleccionando una serie
de puntos que se van entrelazando para poder obtener así un polígono al final cerrado que
contenga la información que se requiera (fig. 5). Siendo así, que el usuario será el encargado de
seleccionar los puntos por medio del mouse y conformar la segmentación de la región deseada
manualmente al regresar al punto inicial de partida y cerrar el polígono.
16
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
Fig.5. Selección de un polígono en el panel de trabajo.
El algoritmo trabaja de manera que cada que el usuario oprima el botón izquierdo del mouse, la
coordenada en el plano seleccionada se almacena en un vector de puntos necesario y de tamaño
ajustable de manera que uno a uno se van almacenando, terminando así de almacenarse en el
momento en el que el usuario regrese al punto de partida dando un “click” al primer punto que
seleccionó. En ese momento el punto de origen estará marcado indicando que el polígono ha sido
cerrado y que el vector no almacenara más puntos (fig. 6). Si el usuario llegase a equivocarse en
la selección de sus puntos simplemente puede seleccionar el origen, y una vez cerrado el
polígono, puede volver a comenzar nuevamente a trazar un nuevo polígono, lo que ocasiona que
se vacíen los datos del vector eliminando los datos del polígono formado anteriormente.
Fig.6. Izquierda: Selección de puntos para conformar el polígono. Derecha: Polígono conformado.
17
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
Como se menciona anteriormente, el algoritmo captura las coordenadas del punto en un vector o
arreglo de puntos encargado de almacenarse hasta que el usuario regrese al punto origen. El
arreglo de puntos tendrá un tamaño de acuerdo a la cantidad de puntos que seleccione el usuario,
por tanto no existe un límite fijo de puntos que pueda seleccionar el usuario mientras no vuelva a
seleccionar el punto de origen para poder cerrar el polígono, de manera que a mayor selección de
puntos puede hacer más precisa la triangulación (fig. 7), pero existe un límite marcado por el
algoritmo, de manera que los puntos no podrán acercarse 5 pixeles de distancia a lo largo y a lo
alto uno del otro, si es que se quiere una triangulación poligonal correcta.
Fig.7. Selección de la ROI. La imagen se encuentra delimitada por los puntos seleccionados manualmente por el usuario.
RASTERIZACIÓN DEL TRIANGULO
Las regiones poligonales son el tipo de región de interés más utilizada en imágenes médicas
debido a que se puede seleccionar una mejor delimitación de una o varias características de la
imagen que presenten ciertas formas irregulares. Con las regiones poligonales se facilita la
selección más exacta de los píxeles que pertenezcan a la zona ósea de interés.
Las regiones poligonales pueden adoptar diferentes
formas de acuerdo al orden en que se colocan sus
vértices, lo cual complica la determinación de las
coordenadas de los píxeles implícitos en la región.
La selección poligonal del programa consta de un
polígono formado por uno o más triángulos. El número
de triángulos presentes dentro del polígono es igual a N-
18
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
2, donde N es el número de vértices del polígono, cumpliendose la condicion si N es igual o
mayor a 3. Por ejemplo, se tiene un poligono de conformado por 7 vértices, por lo tanto tendrá
N-2=5 triangulos internos (fig. 8). De esta manera para poder facilitar el algoritmo, se evalúa
cada triángulo por separado y se obtienen sus coordenadas. De manera que se requiere obtener
las coordenadas del interior del triángulo, accion llamada rasterización del triángulo.
Fig.8. Conjunto de N-2 triángulos que conforman el polígono de N vértices.
ALGORITMO DE OBTENCIÓN DEL RECTÁNGULO
Se sabe que una imagen es un arreglo de píxeles (m x n) donde m es el número de filas y n el de
columnas. Ahora imaginemos un rectángulo que se encuentra delimitando a un triángulo, cuyas
coordenadas en sus vértices P1(x1, y1), P2(x2, y2) y P3(x3, y3) respectivamente (fig. 9). El primer
paso es obtener las ecuaciones de recta de cada uno de las aristas del triángulo, de manera que:
Haciendo esto con cada vértice para obtener los valores de la pendiente m (no confundir con el
número de filas) y la ordenada al origen b de los vértices y
respectivamente se
procede a encontrar los valores mínimos y máximos de en x y en y, de esta manera podemos
identificar el rectángulo mínimo que encierra al triangulo y permite realizar un barrido más
preciso y con un menor gasto de memoria computacional (fig. 9).
Fig.9. Triángulo delimitado por un rectángulo. Se observan los tipos de aristas y las coordenadas de sus vértices.
19
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
Para obtener los píxeles implícitos del triángulo se consideran tres condiciones las cuales debe
cumplir para decir que el píxel se encuentra dentro del mismo:
1. Los píxeles con coordenadas que se encuentren por encima de la arista superior (AS)
(nótese que es por encima debido a la dirección hacia abajo del eje y).
2. Los píxeles con coordenadas que se encuentren por debajo de la arista inferior (AI).
3. Los píxeles que sean de coordenadas mayores a la arista base (AB) cuando el punto de
dirección se encuentra a la derecha o menores a esta cuando el punto de dirección se
encuentre a la izquierda.
Ahora procedemos a identificar cada una de las aristas para poder realizar el algoritmo
delimitador:
La arista base (AB) es aquella que presenta el mayor valor absoluto en la pendiente, en
otras palabras, la más cercana a la vertical. Una vez identificados los dos puntos que la
conforman se considera un punto de dirección PD, como un punto al que no pertenece la
recta. Por ejemplo, en el caso de la figura se observa que los puntos en el eje x que
componen a la arista base son x1 y x2, así que por lo tanto PDx será el punto x3.
Como se observa en la figura, se pueden observar las coordenadas máximas (xM, yM) y
mínimas (xm, ym) que conforman el rectángulo que rodea al triangulo. El criterio acerca de
que si los píxeles de las coordenadas de la arista base deben ser mayores o menores para
que se encuentren dentro del triángulo, dependerá del valor de que tenga PDx. Si PDx tiene
el mismo valor que xM, entonces los píxeles del triángulo serán los píxeles que se
encuentren a la derecha de la arista base, o sea los de mayor valor en el eje x, en caso
contrario si PDx tiene el mismo valor de xm serán los que se encuentren a la izquierda y
serán los de valor menor a la arista base. En el ejemplo podemos apreciar que PDx = x3 =
xM, por lo tanto se escogen los píxeles a la derecha del arista base porque son los que
componen el triángulo.
La arista superior es aquella que parte de la coordenada con menor valor en y de la arista
base (o sea la que se encuentre en el punto más alto de la arista, recordando que el eje y
se encuentra invertido) hacia el punto PD.
La arista inferior es aquella que parte de la coordenada con mayor valor en y de la arista
base (o sea la que se encuentre en el punto más bajo de la arista, recordando que el eje y
se encuentra invertido) hacia el punto PD.
Una vez identificadas las tres aristas se procede a realizar un algoritmo de delimitación de los
píxeles en base a las tres condiciones que anteriormente se explicaron. El algoritmo se repite para
cada triangulo presente en el polígono para así obtener todos los píxeles contenidos dentro del
polígono.
PSEUDOCÓDIGO
20
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
El pseudocódigo se dividirá en dos métodos el primero y general llamado “Obtener Triangulo”
se usará para obtener la subimagen y uno más que será llamado dentro del principal llamado
“Región Triangular” que será el encargado de hacer el barrido a la subimagen. En el transcurso
del primer método se logrará determinar las dimensiones de la subimagen que contiene al
triangulo así como definir las aristas que lo conforman para poder efectuar el barrido adecuado
para poder obtener los píxeles del triángulo. A continuación el pseudocódigo:
MÉTODO OBTENER TRIANGULO
VARIABLES
Valor en x del punto 1: P1x
(double)
Pendiente Base: Mb (double) Valor en x de un punto de la Arista
Base: PXb (double)
Valor en y del punto 1: P1y
(double)
Pendiente Superior: Ms (double) Valor en x de un punto de la Arista
Superior: PXs (double)
Valor en x del punto 2: P2x
(double)
Pendiente Inferior: Mi (double) Valor en x de un punto de la Arista
Inferior: PXi (double)
Valor en y del punto 2: P2y
(double)
Ordenada al origen Base: Bb (double) Valor en y de un punto de la Arista
Base: PYi (double)
Valor en x del punto 3: P3x
(double)
Ordenada al origen Superior: Bs
(double)
Valor en y de un punto de la Arista
Superior: PYs (double)
Valor en y del punto 3: P3y
(double)
Ordenada al origen Inferior: Bi
(double)
Valor en y de un punto de la Arista
Inferior: PYi (double)
Coordenada máxima en x del
rectángulo: anchoMax (double)
Coordenada máxima en y del
rectángulo: altoMax (double)
Matriz de las pendientes: Mtr[] (double
[3])
Coordenada mínima en x del
rectángulo: anchoMin (doublé)
Coordenada mínima en y del
rectángulo: altoMin (double)
Imagen del Triángulo: Triangulo
(BufferedImage)
Punto Dirección x: PDx (double) Ancho del rectángulo: w (int) Altura adel trectángulo: h (int)
Método:
// Definimos la subimagen y sus dimensiones.
anchoMin = Mínimo valor de (P1x, P2x, P3x);
anchoMax = Máximo valor de (P1x, P2x, P3x);
altoMin = Mínimo valor de (P1y, P2y, P3y);
altoMax = Máximo valor de (P1y, P2y, P3y);
w = (int) anchoMax - (int) anchoMin;
h = (int) altoMax - (int) altoMin;
// Se crea la subimagen de la imagen principal.
Triangulo = nueva BufferedImage (w, h);
21
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
Triangulo = ImagenPrincipal.ObtenerSubimagen (anchoMin, altoMin, w, h);
// Se calculan las pendientes.
Mtr[0] = (P2y – P1y) / (P2x – P1x);
Mtr[1] = (P3y – P2y) / (P3x – P2x);
Mtr[2] = (P1y – P3y) / (P1x – P3x);
/* Definimos variables que se asignarán cuando se identifiquen las pendientes Mb
(pendiente base), Mi (inferior) y Ms (superior) y las respectivas ordenadas al origen en
la ecuación, así como el punto en X restante que no pertenece a la recta de la Mb.
*/
Mb = Máximo valor de (Mtr[0], Mtr[1], Mtr[2]);
// Ahora procedemos a identificar las Mb,Mi,Ms,Bi,Bs,Bb y PDx.
PARA valores desde i=0 hasta 2:{
SI (Mtr[i] Es igual a Mb){
Mb = Mtr[i];
// Definimos una variable mediática de doble precisión.
double Ymayor = 0;
SWITCH (i){
CASO 0: // El punto 1 es el punto de la Arista Base.
Ymayor = Máximo valor de (P1y,P2y);
PDx = P3x; PXb = P2x; PYb = P2y;
SI (Ymayor Es igual a P2y){
Mi = Mtr[1]; PXi = P3x - anchoMin; PYi = P3y -
altoMin;
Ms = Mtr[2]; PXs = P1x - anchoMin; PYs = P1y -
altoMin;
} DE LO CONTRARIO{
Mi = Mtr[2]; PXi = P1x - anchoMin; PYi = P1y -
altoMin;
Ms = Mtr[1]; PXs = P3x - anchoMin; PYs = P3y -
altoMin;
}
BREAK;
22
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
CASO 1: // El punto 2 es el punto de la Arista Base.
Ymayor = Máximo valor de (P3y,P2y);
PDx = P1x; PXb = P3x; PYb = P3y;
SI (Ymayor Es igual a P3y){
Mi = Mtr[0]; PXi = P1x - anchoMin; PYi = P1y -
altoMin;
Ms = Mtr[2]; PXs = P2x - anchoMin; PYs = P2y -
altoMin;
} DE LO CONTRARIO{
Mi = Mtr[2]; PXi = P2x - anchoMin; PYi = P2y -
altoMin;
Ms = Mtr[0]; PXs = P1x - anchoMin; PYs = P1y -
altoMin;
}
BREAK;
CASO 2: // El punto 3 es el punto de la Arista Base.
Ymayor = Máximo valor de (P1y,P3y);
PDx = P2x; PXb = P1x; PYb = P1y;
SI (Ymayor Es igual a P1y){
Mi = Mtr[0]; PXi = P2x - anchoMin; PYi = P2y -
altoMin;
Ms = Mtr[1]; PXs = P3x - anchoMin; PYs = P3y -
altoMin;
} DE LO CONTRARIO{
Mi = Mtr[1]; PXi = P3x - anchoMin; PYi = P3y -
altoMin;
Ms = Mtr[0]; PXs = P2x - anchoMin; PYs = P2y -
altoMin;
}
BREAK;
}
}
}
// Ahora se realiza el cálculo de las B's ordenadas al origen en las ecuaciones de la recta.
Bs = PYs - (Ms * PXs); Bi = PYi - (Mi * PXi); Bb = PYb - (Mb * PXb);
23
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
// Se llama el método del barrido
BARRIDO(Triangulo);
Retorna Triangulo;
MÉTODO BARRIDO
VARIABLES
Valor resultante al introducir x a la ecuación de recta de
la Arista Superior: Asup (int)
Valor resultante al introducir y a la ecuación de recta de la
Arista Superior: Abase (int)
Valor resultante al introducir x a la ecuación de recta de
la Arista Inferior: Ainf (int)
Pixeles obtenidos del triángulo: pix (int)
PARA valores desde x=0 hasta w-1{
PARA valores desde y=0 hasta h-1{
Asup = (int) (Ms * x) + Bs;
Ainf = (int) (Mi * x) + Bi;
Abase = (int) (y - Bb) / Mb;
//Condición cuando la pendiente base se encuentra a la izquierda.
SI (y > Asup & y < Ainf & x >Abase & PDx ==anchoMax ) {
Obtener pix;
} DE LO CONTRARIO
//Condición cuando la pendiente base se encuentra a la derecha.
SI (y < Asup & y > Ainf & x > Base & PDx == anchoMin){
Obtener pix;
}
}
}
TRIANGULACIÓN POLIGONAL
24
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
Como se explicó anteriormente, todos los polígonos irregulares estarán conformados por una
serie de triángulos pero, ¿De qué manera dividimos un polígono irregular en N-2 triángulos? El
algoritmo de triangulación es el encargado de subdividir esos polígonos en triángulos para poder
trabajar con ellos. El algoritmo consiste en una serie de pasos a seguir por el programa, desde la
recolección de la serie de puntos seleccionados por el usuario con sus coordenadas en el plano
dado por el panel en la interfaz, hasta la triangulación del polígono y el almacenamiento de un
vector de imágenes que contienen los triángulos.
A lo largo del algoritmo se utilizara una serie de
variables que estarán presentes en la composición
del algoritmo de triangulación; para comenzar se
nombrarán las primeras tres variables que
representarán los tres puntos que conforman los
vértices del triángulo. Las llamaremos “IN, MED y
FIN”, que representan los puntos inicial, medio y
final respectivamente (fig. 10).
Fig. 10. Ejemplo de asignación de puntos Inicial (IN), Medio (MED) y
final (FIN).
La triangulación se llevará a cabo sobre un grupo de puntos, que serán todos aquellos que
seleccione el usuario hasta terminar de formar el polígono irregular que envolverá por completo
la ROI que el usuario ha determinado. Todos esos puntos en algún momento dado serán
reasignados constantemente con el valor inicial, medio o final según se vaya desarrollando el
algoritmo de triangulación.
En la triangulación se lleva a cabo una revisión de los puntos en orden ascendente conforme los
puntos fueron siendo seleccionados con excepción del último punto que el usuario seleccionó,
que pasará a ser el primero en ser revisado; por ejemplo, en un polígono formado por nueve
puntos el noveno será el primero a analizar, seguido por el primer punto que el usuario
seleccionó, luego el segundo, tercero y así sucesivamente hasta llegar al octavo (fig. 11), y
finalmente se asignará “N” como el número total de puntos seleccionados por el usuario, en el
caso del ejemplo de la figura 11, N tendría un valor de 10.
Para poder llevar el análisis en cada tercia de puntos, se crearon dos variables que nos
determinan la dirección en la que vamos recorriendo los puntos del polígono mientras se va
analizando si los puntos pueden triangularse o no. La primer variable llamada “i” nos mueve en
dirección de las manecillas del reloj a través de la figura y la segunda variable llamada “k” nos
dirá cuando debemos parar y retroceder porque la triangulación no se puede llevar a cabo en esos
3 puntos por diversas circunstancias que más adelante detallaremos (fig. 11).
25
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
Fig. 11. Ejemplo de un polígono irregular, se aprecian los puntos N=10, el orden de los puntos asignados para la triangulación,
la ruta “i” que va en sentido ascendente de los puntos y la ruta “k” que va en orden descendente.
Cabe resaltar que el algoritmo antes mencionado no puede seguir funcionando en caso de haber
un doble retroceso cuando vamos analizando los puntos en forma ascendente como ya se ha
explicado, para ello existe la última variable asignada llamada “rev”que atua como un contador
en caso de que el algortmo haya detectado 2 retrocesos, cuyo caso se explicará más adelante.
El algoritmo en general gira en torno a los que llamamos “Las tres condiciones”, que son los así
llamados 3 criterios que utilizaremos para poder realizar la triangulación entre 3 de los vértices
que conforman el polígono irregular antes mencionado, cuando no se cumpla alguna de ellas, el
programa elegirá otra tercia de vértices hasta que se cumplan las mismas. La selección y cambio
de vértices que son elegidos por el programa para hacer la triangulación son dirigidos y actúan de
acuerdo a como vaya cambiando el valor de las variables k e i, de manera que ellas actúan como
una especie de guía para que el programa vaya identificando la posición en donde se encuentra
con respecto al polígono. En caso de hacer un doble retroceso el programa elimina los puntos
que ya fueron triangulados de la figura y crea una subfigura nueva con los puntos faltantes por
triangular y una vez generada vuelve a comenzar con el análisis de las 3 condiciones sobre la
mueva sub figura, esto lo seguirá haciendo hasta haber terminado de triangular todos los puntos
del polígono. A continuación se explicará más a detalle el funcionamiento del algoritmo.
Como nota final, el algoritmo de triangulación “está diseñado para que los puntos se adquieran
en dirección a las manecillas del reloj”, aunque bajo ciertas circunstancias donde no exista más
de doble concavidad puede funcionar con la adquisición de los puntos en sentido contrario a las
manecillas.
26
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
LAS TRES CONDICIONES
Como ya se han mencionado anteriormente se tienen las variables iniciales IN, MED y FIN para
los puntos que se analizarán para ver si cumplen con las condiciones de ser triangulados, una
variable N que determina el número total de puntos que el usuario seleccionó, las variables de
dirección k e i, que nos permitirán ir retrocediendo o avanzando respectivamente a través de los
puntos del polígono y por último la variable rev, en caso de que haya dos retrocesos consecutivos
a la hora de analizar la figura. Todas estas variables son necesarias para el algoritmo y su función.
Dentro de la etapa de las tres condiciones para llevar a cabo la triangulación se requiere el uso de
la mayoría de ellas.
Para poder trazar el triángulo del polígono, los tres puntos seleccionados por el programa, dentro
de la lista de puntos totales seleccionados por el usuario, deben cumplir con 3 condiciones
necesarias. Esas condiciones son:
1. CONDICIÓN DE CONVEXIDAD.
2. CONDICIÓN DE CONCAVIDAD.
3. CONDICIÓN DE NO INTERSECCIÓN.
Estas condiciones son las que revisará el programa una a la vez para así poder determinar si las
condiciones son correctas para poder triangular los pixeles. A continuación se explica con detalle
en que consiste cada una.
CONDICIÓN DE CONVEXIDAD
La primera condición establece que los tres puntos seleccionados (IN, MED y FIN) conformen 2
vectores partiendo desde el punto medio y que ambos vectores formen un ángulo menor a 180
grados (fig. 12). Para poder llevar a cabo la primera condición debemos hacer uso del llamado
producto vectorial bidimensional.
Conociendo las propiedades del producto vectorial
determinamos si un vector está a derecha o a izquierda
de un segmento de la figura, por ello la importancia de
la adquisición en sentido de las manecillas del reloj para
el funcionamiento del algoritmo. Para empezar tenemos
que encontrar esos vectores, de manera que restamos las
coordenadas entre 2 puntos tomando 1 de ellos como el
origen. Tenemos que para encontrar ambos vectores A y
B:
Fig. 12. Vectores A y B conformados por los puntos IN, MED y FIN
26
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
Ahora lo que viene es hacer el cálculo vectorial entre ambos de manera que podamos obtener
hacia donde se encuentra el vector A con respecto al B esperando que el resultado sea mayor a
cero para poder cumplir la condición de convexidad (fig. 13).
( )
De manera que si obtenemos un resultado con signo negativo tenemos que el vector B se
encuentra a la derecha del vector A, lo cual ocasiona que el ángulo que conformen tenga signo
negativo, por lo cual es un ángulo mayor a 180° y por tanto el segmento es cóncavo y no cumple
con la primera condición (nótese que en las coordenadas en el plano de una imagen digital, el
origen se encuentra en la esquina superior izquierda, lo cual ocasiona que el eje y se encuentre al
revés como antes lo veníamos mencionando).
Fig. 13. Izquierda: Vectores formados por los puntos 10, 1 y 2; el ángulo formado es menor a 180° y por lo tanto es convexo y
cumple con la condición. Derecha: Vectores formados por los puntos 4, 5 y 6; el ángulo formado es superior a los 180° por lo
tanto es cóncavo y no cumple con la condición.
27
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
CONDICIÓN DE CONCAVIDAD
La segunda condición es similar a la primera y
nuevamente se utiliza el producto vectorial; la
diferencia principal radica en que se comprueba
la concavidad entre 3 puntos los cuales son el
inicial IN, el final FIN y como punto medio se
encuentra el punto anterior al punto inicial o sea
IN-1, esto con el fin de poder identificar pixeles
no deseados que no pertenecen al polígono
formado por el usuario y se pudieran infiltrar en
la figura (fig. 14). Encontrando concavidad entre
esos tres puntos nos garantiza que el punto final
FIN se encuentra a la derecha del punto inicial
IN, lo cual nos sirve de guía para indicarnos que
la figura sigue teniendo vértices convexos, y el
ángulo formado entre estos vectores es superior
a los 180 grados.
Fig. 14. Vectores A y B conformados por los puntos IN, IN-1 y FIN.
De la misma manera se realiza el producto vectorial, generando los vectores con los puntos y
antes mencionados (IN, IN-1, y FIN), comprobando la concavidad y por tanto el cumplimiento
de la condición, al obtener un resultado
menor a cero (fig. 15).
Fig. 15. Izquierda: Triangulación que si
cumple con las condiciones de convexidad y de
concavidad entre los puntos 2-3-4 al obtener
concavidad entre los vectores P1P2 y P1P4,
formando un ángulo superior a los 180°.
Derecha: Triangulación que cumple con la
condición de convexidad, más no cumple con la
condición de concavidad entre los puntos 3-5-6, se
aprecia que existe un punto de intersección y por lo
tanto existe un área no perteneciente al polígono.
28
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
CONDICIÓN DE NO INTERSECCIÓN
La tercera y última condición es complementaria a la condición de concavidad, en pocas palabras,
es la última encargada de revisar cualquier triangulación falsa que resulte haber pasado las
primeras dos condiciones y encargarse de ella. Está basada en el principio que dice que la recta
que cierre los tres puntos para formar el triángulo no debe intersectarse con ningún vértice del
polígono. El objetivo de esta condición es establecer que no exista algún área en el triángulo
formado que no pertenezca al polígono identificando los llamados puntos de intersección. Los
puntos de intersección no son otra cosa más que los puntos formados por la intersección entre el
vértice creado para cerrar el triángulo del algoritmo y los vértices originales de la figura,
pudiendo existir uno o más de un punto de intersección, lo que ocasiona que condición de no
intersección no se lleve a cabo (fig. 16).
.
Fig. 16. Arriba: Triangulación que cumple con
“Las tres condiciones” entre los puntos 9-10-1.
Abajo: Triangulación que cumple con
las primeras 2 condiciones, pero no cumple con
la condición de “No intersección” entre los
puntos 1-2-6, se aprecia que existe más de un
punto de intersección y por lo tanto existe un
área no perteneciente al polígono dentro de la
triangulación.
29
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
Para poder llevar a cabo la implementación de la tercera condición dentro del programa, se
utilizó una subimagen auxiliar implementada, la cual consiste en una sola imagen binaria en
blanco y negro que contiene una reproducción del polígono que el usuario trazó dentro del panel
principal. La imagen copia el polígono formado por el usuario y lo convierte en una figura
geométrica delimitada con fondo negro (fig.17). El algoritmo obtiene la ecuación de la recta que
va del punto FIN y el IN que es la recta encargada de completar el triángulo y le hace un barrido
a toda la recta a través de los pixeles de todo el segmento. En caso de encontrar algún pixel de
color distinto al color de fondo, o sea el color blanco, el algoritmo retornará una respuesta
negativa acerca del cumplimiento de la condición (fig. 18).
Fig. 17. Izquierda: Figura trazada en el
Panel Principal por el usuario. Derecha:
Subimagen generada en b/n auxiliar para determinar la condición de “No intersección”.
Fig. 18. Análisis de la figura basado en el algoritmo
construido. Barrido de la recta de pixeles desde el
punto FIN al IN encontrando pixeles de color distinto
al del fondo marcados con rojo en este caso, se pueden
observar en color blanco las fronteras del polígono.
RECORRIDO A TRAVÉS DEL POLÍGONO
30
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
Como ya se ha mencionado antes, el recorrido comenzará con los primeros tres puntos asignados,
en este caso llamaremos al primer punto marcado por el usuario, punto “cero”, al segundo punto
“uno” y así sucesivamente hasta llegar al punto “N-1”, donde ya se había explicado a N como la
cantidad de puntos totales que utilizó el usuario en el polígono formado (fig. 19).
En un principio tenemos las variables k e i con un valor inicial de 1 cada una, la cual nos marca
la posición inicial en la que nos encontramos. También tenemos la variable de retroceso rev, que
nos sirve como bandera para poder indicarnos la cantidad de retrocesos que llevamos;
inicialmente asignada con un valor de cero puesto que no se ha realizado ningún retroceso al
iniciar el recorrido a través del polígono.
El algoritmo se utiliza un ciclo do-while que será el encargado de realizar consecutivamente las
comprobaciones de “Las tres condiciones”, a través de toda la figura de punto en punto hasta
completarla, pero ordenadamente gracias a nuestras variables bandera k, i y rev.
En caso de cumplirse o no hacerlo alguna de las tres condiciones, las variables cambiarán de
acuerdo al siguiente criterio: Si se cumplen “Las tres condiciones”, i se incrementará una unidad,
y retroceso rev será reiniciado a su valor original de cero (en caso de tener algún valor mayor);
por otro lado, si alguna de “Las tres condiciones” no se cumpliese, las variables k y rev se
incrementarán una unidad y la variable i disminuirá una. Mientras se esté realizando el recorrido
a través de los puntos del polígono, tienen que irse reasignando constantemente los puntos IN,
MED, FIN y las variables i, k y rev según se cumplan o no las tres condiciones. En el caso de
cumplirlas, el incremento de la variable i se utiliza para ir avanzando hacia el siguiente punto; en
caso contrario, utilizamos el incremento de la variable k para retroceder un punto y volver a
probar con una tercia de puntos distinta. A continuación se explica con detalle cómo trabaja cada
variable bandera.
LA VARIABLE i, SU INCREMENTO Y LA REASIGACIÓN DE LOS PUNTOS
La variable i, inicial con un valor de uno, se utiliza para poder avanzar progresivamente a través
de los puntos de la figura en orden creciente como se fueron seleccionando los mismos por el
usuario, de manera que i se va incrementando conforme se va triangulando una tripleta del
polígono para poder pasar a la siguiente nueva tercia de puntos a analizar.
Inicialmente tenemos los tres puntos asignados, en primer lugar tenemos al último punto
seleccionado por el usuario (N-1), enseguida del primero (0) y finalmente el segundo (1).
Tomando esos tres puntos se les asigna el nombre de puntos IN, MED y FIN respectivamente;
seguido de ello se comprueban “Las tres condiciones” entre los tres puntos (fig. 19).
31
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
Fig. 19. Polígono de N=10 puntos en el cual se comprueba que se cumplen “Las tres condiciones” sobre los puntos N-1=9, 0 y 1.
Una vez cumplidas “Las tres condiciones” sobre los puntos IN, MED y FIN, se procede a realizar
la triangulación y posteriormente la reasignación de puntos y de los valores de las variables. Esto
se hace de la siguiente manera:
1. El punto IN del triángulo será nuevamente el punto IN para el nuevo análisis.
2. El punto FIN del triángulo ahora pasará a ser el nuevo punto MED.
3. El nuevo punto FIN asignado será el punto i+1.
4. La variable i se incrementa una unidad i=i+1
5. La variable rev se reinicia y su valor pasa a ser cero.
Una vez realizada la triangulación
y siguiendo el ejemplo de la
figura, el nuevo punto medio
MED será el llamado antes punto
FIN (punto 1), mientras que el
punto FIN nuevo será en este caso
i+1 = 2 y finalmente el punto
inicial sigue permaneciendo igual
(N-1) (fig. 20). Mientras que las
variable k permanece con valor de
1 y rev con valor de cero, la
variable i se incrementa y ahora
adquiere un valor de i+1, en el
caso del ejemplo, ahora i=2.
Fig. 20. Triangulación de los puntos 9-0-1 y reasignación de las variables IN, MED y FIN ahora para los puntos 9-1-2
respectivamente
32
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
Nuevamente se procede a realizar el análisis de “Las tres condiciones” para poder comprobar si
cumplen con los requerimientos para la triangulación, si los puntos cumplen con las tres
condiciones, se procede a realizar la triangulación sobre los puntos y posteriormente la
reasignación de las variables y valores de las mismas nuevamente según las reglas antes
mencionadas (fig. 21).
.
Fig. 21. Polígono de N=10
puntos, el cual se comprueba el cumplimiento de “Las tres condiciones” en los puntos N-1=9, 1 y 2.
Al comprobarse la acreditación de las tres condiciones, se realiza nuevamente la triangulación y
se reasignan las variables como se hizo anteriormente, de manera que el punto inicial IN sigue
siendo N-1, MED pasa a ser el punto 2 y FIN el punto 3. Mientras que i ahora tiene un valor de
i+1=3 (fig. 22). De esta forma se irá repitiendo el ciclo y realizando la triangulación y la
reasignación de variables mientras se cumplan “Las tres condiciones”.
Fig. 22. Triangulación de los
puntos 9-0-1 y de los puntos 9-1-2
y la reasignación de las variables
IN, MED y FIN ahora para los
puntos 9-2-3 respectivamente.
33
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
LA VARIABLE k, SU INCREMENTO Y LA REASIGACIÓN DE LOS PUNTOS
En el tema anterior tratamos lo que sucede a las variables en caso de que los puntos asignados
cumplieran con las tres condiciones, pero tratándose de polígonos irregulares, que pueden ser
tanto convexos como cóncavos no siempre pueden cumplirse las tres condiciones. De manera
que, a partir de ahora se explicará que sucede en caso de no cumplirse al menos una de las tres
condiciones.
Cuando alguna de las tres condiciones no se cumple satisfactoriamente es cuando entran en
acción las variables k y rev jugando un papel importante, de tal modo que sufren un cambio de
valor y al mismo tiempo ocurre una nueva reasignación de las variables IN, MED y FIN.
Regresando al ejemplo del polígono irregular analizado anteriormente tenemos que en estos
momentos tenemos los valores de 0, 1 y 3 para rev, k e i respectivamente mientras que los puntos
IN, MED y FIN son en este caso los puntos 9, 2 y 3 del polígono respectivamente. Ahora se
procede a analizar las tres condiciones sobre los 3 puntos asignados para comprobar si cumplen
con las reglas establecidas por las tres condiciones (Fig. 23).
Fig. 23. Polígono de N=10 puntos en el cual se observa que no se cumple una de “Las tres condiciones” sobre los puntos N-1=9,
2 y 3.
Como se puede apreciar en la figura (fig. 23), no se cumple la tercera condición, la “Condición
de no intersección”, y por lo tanto los puntos 9-2-3 no cumplen con los requerimientos para ser
triangulados. A continuación, se procede a realizar un retroceso en los puntos para poder realizar
un nuevo análisis con otros puntos asignados. Lo primero que se hace es reasignar los puntos IN,
MED y FIN, y los valores de las variables de la siguiente manera:
1. El nuevo punto IN del triángulo pasará a ser ahora el punto N – (k+1) para el nuevo
análisis.
2. El punto IN del triángulo ahora pasará a ser el nuevo punto MED.
3. El punto MED del triángulo ahora pasará a ser el nuevo punto FIN.
4. El valor de la variable i se decrementa una unidad: i=i-1.
34
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
5. El valor de la variable k se incrementa una unidad k=k+1.
6. El valor de la variable rev se incrementa una unidad rev=rev+1.
Lo que en realidad viene sucediendo es una reasignación nueva retrocediendo las variables IN,
MED y FIN en los puntos del polígono en sentido antihorario, puesto que los puntos tienen que
reasignarse para poder continuar con la labor de triangulación. Según el ejemplo, tenemos que
ahora el punto IN será el punto N-(k+1) = 10-(1+1) = 8, mientras que el nuevo punto MED será
el anterior asignado como IN (en este caso el punto 9), y por último el punto FIN será el anterior
asignado como punto MED (o sea el punto 2) (fig. 24). Una vez reasignados los nuevos puntos
inicial, medio y final, los valores de las variables k, i y rev cambian sus valores de igual manera a
lo mencionado anteriormente, de manera que su valor en el ejemplo termina de la siguiente
manera:
La variable k ahora tiene un valor de k + 1, teniendo un incremento de una unidad (k=2).
La variable i ahora tiene un valor de i – 1, teniendo un decremento de una unidad (i=2).
La variable rev ahora tiene un valor de rev + 1, teniendo un incremento de una unidad
(rev=1).
Fig. 24. Reasignación de los puntos IN, MED y FIN al no cumplirse con “Las tres condiciones”, asignándosele los puntos 8-9-2
respectivamente.
Teniendo una nueva reasignación de puntos IN, MED y FIN podemos volver a llevar a cabo la
comprobación de las tres condiciones sobre los mismos para determinar si cumplen las reglas del
algoritmo para ser triangulados (fig. 25).
35
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
Fig. 25. Polígono de N=10 puntos en el cual se comprueba que se cumplen “Las tres condiciones” sobre los puntos 8, 9 y 2.
Al comprobarse que las tres condiciones son cumplidas se procede a triangular y reasignar
variables usando el criterio de cumplimiento visto anteriormente, el cual es el que incrementa el
valor de i, y reinicia la variable rev (fig. 26), en otras palabras, los nuevos valores de las variables
son i=i+1=3; la variable k conserva su valor de manera que k=2 y la variable rev se reinicia de
manera que vuelve a tener valor cero, como lo explicado anteriormente en la triangulación y el
incremento de “i”.
Fig. 26. Triangulación de los puntos 9-0-1, 9-1-2 y 8-9-2 y la reasignación de las variables IN, MED y FIN ahora para los
puntos 8-2-3 respectivamente.
Para complementar la comprensión de la reasignación en el primer retroceso para continuar con
el análisis de las condiciones para la triangulación; se comprobará una vez más brevemente y
36
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
paso a paso lo sucedido al continuar con la triangulación de la figura ejemplo que venimos
manejando.
1. Se revisan que los puntos cumplan con las tres condiciones (en estos momentos las
variables se encuentran de la siguiente manera: IN: 8, MED: 2, FIN: 3, y los valores de
las banderas debido a la anterior triangulación son i=3, k=2, rev=0; figura 27a).
2. Al observarse que al menos una de las tres condiciones no se cumple se realiza el llamado
“retroceso” de puntos reasignándose los puntos y variables como se explicó
anteriormente (reasignando los puntos: IN:N-(k+1)=7; MED: anterior IN:8; FIN:
anterior MED: 2; y las variables bandera cambian a: i=(i-1)=2, k=(k+1)=3,
rev=(rev+1)=1; figura 27b).
3. Con la nueva reasignación ahora se vuelve a comprobar cada una de las tres condiciones
con la nueva reasignación de puntos (la reasignación es: IN: 7, MED: 8, FIN: 2; las
variables conservan sus valores de i=2, k=3, rev=1; figura 27c).
4. Al cumplirse esta vez las tres condiciones adecuadamente, se realiza la triangulación de
los tres puntos y se reasignan nuevamente las variables según el criterio de triangulación
(reasignando los puntos nuevamente por la triangulación tenemos: IN: 7, MED: anterior
FIN: 2, FIN: i+1=3; y los valores de las variables se reasignan: i=(i+1)=3, k=3, rev=0;
figura 27d).
a) b)
c) d)
Fig. 27. Figuras a, b, c y d que representan el proceso de retroceso,
37
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
reasignación, evaluación y triangulación de los puntos de la figura.
LA VARIABLE rev, SU DOBLE INCREMENTO Y LA CREACIÓN DE UN
SUBPOLÍGONO
Hasta ahora se ha visto la importancia que juegan las variables bandera dentro del algoritmo de
triangulación en la reasignación de puntos en caso de cumplirse y de no cumplirse la regla de las
tres condiciones para triangular el polígono. Desafortunadamente, el algoritmo ocasiona que las
variables k e i se encuentren limitadas a solamente hacer un retroceso, esto debido una relación
directa que existe entre k e i, ya que el algoritmo pierde la referencia sobre los puntos en los que
se encuentra trabajando el método de triangulación; esto se puede analizar al mostrar cómo
fueron cambiando los valores de ambas variables en el desarrollo de la triangulación de la figura
irregular que venimos manejando (tabla 1). En caso de existir un doble retroceso capaz de
inutilizar nuestro algoritmo de triangulación, tenemos la variable de referencia “rev”, la cual se
encarga de advertir al algoritmo que se está realizando un doble retroceso cuando ésta llega al
valor de 2.
SUCESO
VALOR DE
“i”
VALOR DE
“k”
VALOR DE
“rev”
Inicio
1 1 0
Triangulación 1
2 1 0
Triangulación 2 3 1 0
Retroceso 1
2 2 1
Triangulación 3
3 2 0
Retroceso 2
2 3 1
Triangulación 4
3 3 0
Tabla 1. Análisis de las variables i, rev y k y su relación durante las primeras triangulaciones.
Como venimos observando anteriormente la variable rev trabaja de manera que cuando el
algoritmo localiza un retroceso, la variable rev se incrementa una unidad. Primeramente, la
variable rev tiene un valor de cero cuando se inicia el algoritmo de triangulación y cambia de
manera que se incrementa una unidad cuando localizamos un retroceso, en cambio si después de
ese retroceso existe una triangulación, la variable vuelve a su estado inicial con valor cero.
Analizaremos a continuación con más detalle la importancia real de la variable rev, al continuar
con el ejemplo que venimos analizando para implementar el algoritmo.
Continuando con nuestra figura, lo primero será analizar las tres condiciones sobre los puntos
que la figura tiene asignados (7-2-3), nuevamente para poder observar si se puede efectuar la
38
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
triangulación (fig. 28). Recuerde que según el análisis desempeñado hasta ahora, el valor de las
variables k e i es de 3 y el de rev es cero.
Fig. 28. Polígono de N=10 puntos en el cual se comprueba que no se cumple una de “Las tres condiciones” sobre los puntos 7, 2
y 3.
Una vez comprobadas las tres condiciones y observando que al no poderse llevar a cabo la
triangulación por la falta de cumplimiento una de ellas (condición de intersección) (fig. 28), se
procede a realizar nuevamente el retroceso que reasigna los puntos a triangular e incrementa el
valor de las variables k y rev y se decrementa la variable i, reasignaciones que analizaron en el
tema anterior.
Al reasignar los nuevos puntos, procedemos a realizar un nuevo análisis de las tres condiciones
sobre los mismos y observamos que estos tampoco cumplen con los requerimientos necesarios
para realizar la triangulación, de manera que se vuelve a realizar el proceso de reasignación de
puntos anteriormente visto y del cambio de valores de las variables bandera explicados en el
mismo (fig. 29).
Fig. 29. Polígono de N=10 puntos en el cual se
comprueba que no se cumplen dos de “Las tres
condiciones” sobre los puntos 6, 7 y 2.
39
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
En estos momentos los valores de las variables han cambiado notablemente de manera que k por
el doble retroceso se ha incrementado dos unidades, es decir cambio de un valor de 2 a 5,
mientras que i por el contrario ha tenido un decremento de la misma cantidad de unidades
llegando a un valor de 1, mientras que rev con un valor de 2 nos indica que se ha realizado un par
de retrocesos seguidos por incumplimiento de las tres condiciones, en pocas palabras rev nos
indica el fenómeno de “doble retroceso”. Al existir un doble retroceso debemos reiniciar de
algún modo el algoritmo para no poder estancarnos o que el algoritmo no realice adecuadamente
la triangulación poligonal, al perder la referencia de los puntos en los que se encuentra
localizados para triangular, ocasionando que el algoritmo falle. De manera que se realiza una
subfigura o subpolígono que englobe todos aquellos puntos que nos falta por triangular de
manera que podamos reiniciar el algoritmo.
De esta manera, primeramente se eliminan todos aquellos puntos que ya se encuentran
triangulados en la figura y se crea un nuevo polígono con los puntos restantes; estos puntos se
renombran comenzando con el cero como se hizo primeramente en el polígono antes de
comenzar el algoritmo; de igual manera las variables se reinician con los valores que tuvieron al
inicio del análisis (i, k=1 y rev=0). El punto “cero” de origen, será el punto inicial (IN) de la
última reasignación, e irá en orden progresivo hasta llegar completar el polígono con los puntos
faltantes por triangular (fig. 30). La nueva cantidad de puntos de la nueva sub figura ahora está
representado por la letra “n” por ser una imagen cuyos puntos se derivan de una imagen principal
con “N” número de puntos.
Fig. 30. Polígono irregular formado por los puntos restantes luego del segundo retroceso, n=6, el orden de los puntos asignados
para la triangulación, la ruta “i” que va en sentido ascendente de los puntos y la ruta “k” que va en orden descendente.
Con esta nueva subimagen creada a partir de la nueva imagen, se procede a realizar el algoritmo
basado en “Las tres condiciones” nuevamente, para así poder continuar con la triangulación de la
40
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
figura (fig. 31). De manera que se analizan las tres condiciones sobre los nuevos puntos (n-1)=5,
0 y 1, asignados a los puntos IN, MED y FIN nuevamente.
Fig. 31. Polígono de n=6 puntos en el cual se comprueba que se cumplen “Las tres condiciones” sobre los puntos n-1=5, 0 y 1.
De esta manera en general podemos decir que cada vez que la variable rev obtenga un valor de 2
existirá un doble retroceso, y por tanto un nuevo subpolígono formado a partir de los puntos
restantes por triangular. No importa la cantidad se subpolígonos formados a través el algoritmo o
si el mismo subpolígono se genera una y otra vez hasta que los puntos puedan ser triangulados,
puesto que cuando se cumplen “Las tres condiciones” y se realiza la triangulación entre esos tres
puntos, se almacenan los pixeles contenidos del triángulo en un mismo vector, de manera que se
almacenarán en el mismo N-2 imágenes en total, correspondientes al número de triángulos
totales conformados dentro del polígono.
Para terminar procederemos a concluir con la triangulación de la figura de manera rápida
siguiendo las reglas del algoritmo aprendido y observando el cambio en los valores de las
variables como se muestra a continuación:
CUMPLIMIENTO DE LAS TRES
CONDICIONES
PUNTOS
(IN, MED, FIN, IN-1)
VALOR DE
“i”
VALOR DE
“k”
VALOR DE
“rev”
Si, Triangulación 6 (figura 32a)
5-1-2, 4 3 1 0
No, Concavidad (figura 32b)
5-2-3, 4 2 2 1
Si, Triangulación 7 (figura 32c)
4-5-2, 3 3 2 0
Si, Triangulación 8 (Figura 32d)
4-2-3, 3 4 2 0
41
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
Tabla 2. Comportamiento y asignación de las variables durante el resto de la triangulación del subpolígono n=6.
a) b)
c) d)
Fig. 32. Figuras a, b, c y d que representan el proceso de retroceso, reasignación, evaluación y triangulación de los puntos de
la figura.
Finalmente tenemos el polígono terminado, al formar los 8 triángulos correspondientes a la
figura de N=10 puntos tomando en cuenta la regla de obtener N-2 triángulos de cada polígono de
N vértices (fig. 33).
42
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
Figura 33. Polígono de N=10 luego de haber usado el algoritmo de triangulación sobre él. Se observan los 8 triángulos
formados.
A continuación, otros ejemplos de polígonos simples triangulados usando el algoritmo de
triangulación.
Fig. 34. Ejemplos de polígonos los que se utiliza el algoritmo de triangulación.
43
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
PSEUDOCÓDIGO
Variables:
VARIABLES
Número de puntos del polígono: N (int) Lista de puntos: P[N] (int [N])
Variable de avance: i (int) Variable de retroceso: k (int)
Indicador de retrocesos: rev (int) Número de puntos del subpolígono: n (int)
Sublista de puntos: p[n] (int [n]) Punto inicial del triángulo: IN (int)
Punto medio del triángulo: MED (int) Punto final del triángulo: FIN (int)
Numero de triángulos t (int)
Instrucciones:
IN = P [N-1];
MED = P [0];
FIN = P[1];
i, k = 1;
rev,t = 0;
REALIZA{
SI (rev = 2){
// Creación de subpolígono.
p[0] =P[N- (k-2)];
p[1] =P[i+1];
p[2] =P[i+2];
Posición = 3;
PARA valores desde 3 en adelante y i+3 < A < k-1):
{
p[Posición] = P[A]
Posición = Posición +1;
A = A+1;
}
N = n;
// Reasignación de puntos.
IN = P [N-1];
MED = P [0];
FIN = P[1];
i = 1;
k = 1;
rev =0;
}
DE LO CONTRARIO{
// Comprobar las tres condiciones.
Comprobar Convexidad (IN,MED,FIN);
44
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
Comprobar Concavidad (IN,MED,FIN);
Comprobar Intersección (IN,FIN);
SI SE CUMPLEN{
//Triangular puntos.
Guardar Triangulo (IN,MED.FIN);
t = t+1;
MED = FIN;
FIN = P[i+1];
i = i+1;
rev = 0;
}
DE LO CONTRARIO{
//Hacer un retroceso.
FIN = MED;
MED = IN;
IN = N-(K+1);
i = i-1;
k = k+1;
rev = rev +1;
}
}
} MIENTRAS( t sea menor que N-2)
45
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
RESULTADOS
En este capítulo se plasman los resultados que se obtuvieron en el trabajo de programación
donde se muestra la triangulación en casos y procedimientos de prueba utilizados para
comprobar el funcionamiento de la aplicación en JAVATM
.
Se puede apreciar diversas estructuras óseas que disponen de la triangulación según el algoritmo
elaborado para que se pudieran obtener la región de píxeles de la imagen (ROI) en base a la
selección de puntos realizada por el usuario.
Dentro de las limitaciones encontradas en el algoritmo se encuentra que la selección de puntos
del usuario se debe hacer en dirección de las manecillas del reloj debido a la regla de la mano
derecha utilizada para obtener el ángulo entre dos vectores en el producto vectorial que es
utilizado dentro de las condiciones de convexidad y concavidad utilizadas en el programa.
Además el algoritmo falla si se realizan envolvimientos de regiones irregulares o si los vértices
formados por el polígono que crea el usuario se ven intersectados de alguna forma. La limitación
de cercanía entre puntos es recomendada como mayor a 5 píxeles entre cada punto para un
funcionamiento más óptimo del algoritmo.
46
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
Fig. 35. Ejemplos de triangulaciones aplicadas en el programa realizado.
CONCLUSIONES
La planificación de la cirugía ortopédica es de vital importancia para garantizar la eficacia de los
procedimientos quirúrgicos dentro del quirófano. La existencia de sistemas CAOS de
planificación preoperatoria nos permiten reducir considerablemente el tiempo de cirugía, además
de proveer todas las ventajas que proporciona tener la información en formato digital. La
inclusión de la librería de implantes y su deformación permite simular el procedimiento dentro
del quirófano realizado por el cirujano y su equipo.
Dentro del procedimiento utilizado para la alineación de fracturas en el simulador digital, se
lleva a cabo el proceso de segmentación de la imagen médica para poder manipular una porción
de pixeles seleccionados para llevar a cabo su procesamiento.
El presente trabajo se realizó con la primicia de poder obtener y seleccionar los pixeles de una
imagen médica para después llevar a cabo el proceso de segmentación de la misma. Para ello fue
diseñado un algoritmo capaz de triangular la región de pixeles seleccionada, es decir, convertir la
región irregular de pixeles seleccionados por el usuario en un conjunto de triángulos que
conforman esa región poligonal irregular. Una vez lograda la segmentación, se pueden incluir
posteriormente los métodos de procesamiento posteriores (transformaciones geométricas de
rotación y traslación) que ayuden a construir la herramienta de planeación quirúrgica ortopédica.
47
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
De acuerdo a los resultados obtenidos el algoritmo de triangulación es una buena herramienta
funcional pero aun mejorable. Los tres principios bajo los que trabaja el algoritmo (“las tres
condiciones”) también son la fuente que lo limita, sin embargo el algoritmo funciona
correctamente en las imágenes médicas que fueron sometidas a prueba. El programa desarrollado
es capaz de delimitar y obtener los píxeles de la región de interés que el usuario seleccione para
después realizar su posterior procesamiento. El algoritmo de triangulación desarrollado tiene un
diseño nuevo en base a los conocimientos en ciencias básicas adquiridas por los desarrolladores.
Sin embargo, debido a las imitaciones, aún es un proyecto que debe presentar mejoras y
complementos antes de poder ser utilizado como una herramienta importante dentro de la
planeación de la cirugía ortopédica.
TRABAJO A FUTURO
Para poder llevar a cabo la culminación del proyecto, es necesario refinar los algoritmos y
principalmente resolver la problemática planteada por la implementación de las transformaciones
geométricas para poder completar la herramienta. Posteriormente viene la implementación de la
herramienta para poderla trabajar con archivos tipo DICOM y su implementación en los sistemas
RIS/PACS del hospital. Por otra parte el algoritmo tiene limitaciones respecto al uso del mismo,
debido a las restricciones antes mencionadas.
Para que el programa constituya una solución al problema médico, es necesario la culminación
de los aspectos restantes, una serie de pruebas de funcionamiento para posteriormente su
implementación en hospital para comprobar su desempeño y buscar nuevas mejoras, todo bajo la asesoría continua de un médico traumatólogo.
48
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
APÉNDICES
CLASES DEL PROGRAMA
CLASE PRINCIPAL
Clase inicial encargada de crear una nueva instancia de la clase Interfaz que es del tipo JFrame,
para poder comenzar a correr el programa.
CLASE DESPLIEGUE_IMAGEN
Los métodos de la clase y su función se describen a continuación:
DESPLIEGUE_IMAGEN. Crea una nueva instancia de la clase.
OPEN. Método para abrir la ventana de diálogo y poder cargar la imagen desde archivo.
GUARDAR IMAGEN. Método que guarda la imagen en disco.
SAVE. Método que abre el directorio para poder salvar.
OBTENERIMAGENDEBUFFER. Retorna el objeto o imagen en memoria para su
despliegue en pantalla.
OBTENERTRIANGULO. Método para obtener el triángulo tomando 3 puntos dados y
retorna la imagen como tipo BufferedImage.
REGION_TRIANGULAR. Método que realiza el barrido de para encontrar la región
triangular dentro de cada imagen rectangular.
OBTENERSUBIMAGENPOLIGONAL. Se obtiene una imagen limitada por el tamaño
del polígono formado por los puntos seleccionados con el fin de utilizarla para comprobar
intersecciones en las rectas a la hora de cerrar los triángulos en la triangulación
(condición de intersección).
COMPROBARINTERSECCIÓN. Método que realiza el barrido a la subimagen
poligonal para poder comprobar la condición de no intersección.
COMPROBARCONCAVIDAD. Método que comprueba la no concavidad entre 3 puntos,
por medio del producto vectorial (condición de convexidad).
COMPROBARCONVEXIDAD. Método que comprueba la no convexidad entre 3 puntos,
por medio del producto vectorial (condición de concavidad).
TRIANGULACION. Método principal que triangula el polígono formado por la
selección de puntos y almacena las subimagenes en una matriz llamada “Triangulos”.
ROTACION. Método no empleado que rota una BuferredImage por medio del paquete
AffineTransform.
GETGRADOS. Método no empleado que obtiene y retorna el número de grados para la
rotación.
SETGRADOS. Método no empleado que muestra y repinta sobre el panel la
BurrefedImage rotada.
49
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
VISTASUBIMAGEN. Método auxiliar para presentar en un panel en pantalla la
subimagen del polígono empleado en la condición de intersección.
PAINTCOMPONENT. Método principal que pinta en el lienzo todo el procesamiento
realizado, desde el despliegue en pantalla de la imagen, selección de puntos,
triangulación y su posterior procesamiento.
Eventos del mouse:
MOUSECLICKED. Sin instrucciones aun.
MOUSEPRESSED. Obtiene las coordenadas donde se realizó el evento del mouse para
su posterior almacenamiento en un vector (el vector de puntos).
MOUSERELEASED. Le dice que al soltar el botón del mouse, almacene el punto en un
vector de tamaño indefinido hasta regresar al punto de origen, Además trace un cuadrado
pequeño sobre el pixel seleccionado como indicación de selección del punto, auxiliar en
la selección de la ROI, y por último le pide que si existe una coordenada en el vector
anterior a ella, trace una recta entre ambos puntos (unión del polígono).
MOUSEENTERED. Sin instrucciones aun.
MOUSEEXCITED. Sin instrucciones aun.
MOUSEDRAGGED. Muestra en una zona del panel en pantalla las coordenadas en las
cuales se encuentra posicionado el cursor.
MOUSEMOVED. Obtiene las coordenadas dentro de las cuales se mueve el cursor a lo
largo del panel.
CLASE INTERFAZ
Es del tipo JFrame (librería JavaX) y contiene elementos propios que se pueden desplegar en
pantalla, herramientas útiles para poder establecer correctamente la interfaz del usuario. Los
elementos y métodos de la clase y su función se describen a continuación:
Elementos de la interfaz:
JMENUITEM CARGAR. Elemento en la barra de herramientas.
JMENUITEM CLEAN. Elemento en la barra de herramientas.
JMENUITEM GUARDAR. Elemento en la barra de herramientas.
JSCROLLPANEL1. Panel principal que despliega la imagen a procesar.
JBUTTON1. Botón Rotar en el panel principal.
JMENU1. Elemento de menú en la barra de herramientas
JMENUBAR1. Barra de herramientas.
JPANEL2. Panel auxiliar donde se despliega la imagen para la condición de no
intersección.
JSLIDER1. Deslizador deshabilitado que nos cambia el número de grados a los cuales
queremos rotar
50
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
Métodos:
CARGARACTIONPERFORMED. La opción en el panel de herramientas cargar, llama
al método Open de la clase Despliegue_Imagen.
GUARDARACTIONPERFORMED. La opción en el panel de herramientas guardar,
llama al método Save de la clase Despliegue_Imagen.
CLEANACTIONPERFORMED. La opción en el panel de herramientas limpiar panel,
repinta el panel borrando la imagen abierta.
JBUTTON1ACTIONPERFORMED. Acción de oprimir el botón rotar del panel. el cual
llama al método Triangulacion de la clase Despliegue_Imagen, además de limpiar el
panel de la subimagen poligonal y la repinta con el nuevo polígono.
JSLIDER1STATECHANGED. El método llama al método setGrados de la clase
Despliegue_Imagen para cambiar el valor de grados en la transformación geométrica de
la AffineTrnsform.
CLASE POINT2D
Clase encargada de crear una nueva instancia de tipo point2d. Nos permite en un mismo
elemento crear las coordenadas en x y en y de un punto, en pocas palabras es un creador de
coordenadas.
CLASE PANEL_PREVIA
Es del tipo JPanel (librería JavaX) y su función es la de colocar la imagen que se encuentra en el
Buffer en el objeto JPanel (en este caso la sub imagen utilizada para la condición de intersección),
redimensiona la imagen para que encaje en las dimensiones del JPanel pero la imagen que se
encuentra en el Buffer, preserva su tamaño original. Los métodos de la clase y su función se
describen a continuación:
PANEL_PREVIA. Encargada de crear una nueva instancia de la clase Panel_Previa.
PAINT. Método principal que pinta en el lienzo la sub imagen poligonal de la condición
de intersección.
OBSERVACIÓN FINAL
Las clases Panel_Región y JPanelColor son clases que formaron parte del proyecto en algún
momento sirvieron de utilidad para reafirmar ciertos aspectos con respecto a las clases que
contienen elementos visuales en pantalla. Posteriormente fueron descartadas y deshabilitadas
pero se conservaron en el código con la intención de que sirviera de ayuda a posteriores para
51
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
resolver el problema de la rotación y traslación en un momento dado observando el
comportamiento de ellas.
BIBLIOGRAFÍA
[1] Preoperative Planning in Orthopedic Trauma: Benefits and Contemporary Uses. Hak,
DJ;Rosé J., Volume 33, Issue 8, Pages 581-84 Published: 2010.
[2] Advances in Experimental Medicine and Biology, 1 Volume 680: A Study on
Distributed PACS: Kantarci, Utku Onbay; Pages 669-676.
[3] Digital Image Processing: Gonzalez, Rafael; Woods, Richard. Third Edition, Ed.
Pearson Pretince Hall. Chapter 1, Pages 7-28.
[4] Electronic imaging impact of image and Report Turnarpund Times: Mattern, CWT;
King, BF; Hangiandreou, NJ, et al. JOURNAL OF DIGITAL IMAGING Volume 12:
Issue: 2 Pages 155-59: Published: 1999.
[5] Sitio web: http://www.dicom.com
[6] Indexing and retrieving DICOM data un disperse and unstructured archives,
International Journal of Computer Assisted Radiology and Surgery, 2009, Volume 4,
Number 1, Pages 71-77.
[7] Medical Imaging Signals and Sistems; Prince, Jerry and Links, Jonathan. Second
Edition, Ed. Pearson Pretince Hall. Chapter 4, Radiographic Imaging, Pp. 103-109.
[8] Medical Imaging Signals and Sistems; Prince,Jerry and Links, Jonathan. Second
Edition, Ed. Pearson Pretince Hall. Chapter 1, BasicImgin Principles., Pp. 5-10.
[9] Tratamiento Quirúrgico de las fracturas. Panamericana, J. Schatzker, Buenos Aires,
Argentina, 1998.
[10] Computer aided detection (CAD): an overview. Cancer Imaging, Castellino Ronald
A. 2005; 5(1): 17–19. Publicado en línea 2005 August 23.
[11] Computer-aided detection of peripheral lung cancers missed at CT: ROC analyses
without and with localization. Radiology. Li F., Arimura H., Suzuki K., Shiraishi J., Li Q.,
Abe H., Engelmann R., Sone S., MacMahon H., Doi K., 2005 Nov.
[12] Computer-Aided Image-Guided Bone Fracture Surgery: Modeling, Visualization,
and Preoperative Planning. En MICCAI '98: Proceedings of the First International
Conference on Medical Image Computing and Computer-Assisted Intervention. L.
Tockus, Joskowicz L., Simkin A. y Milgrom C. Páginas 29_38, Londres, Reino Unido,
1998. Springer-Verlag, ISBN 3-540-65136-5.
[13] CRIGOS: a compact robot for image-guided orthopedic surgery. IEEE Transactions
on Information Technology in Biomedicine. G., Brandt, Zimolong A., Carrat L., Merloz
P., Staudte H.-W., Lavallée S., Radermacher K. y Rau G. 3(4):252_260, Junio 1999.
[14] Image guided navigation system to measure intraoperative acetabular implant
alignment. Clinical orthopaedics and related research,.M., DiGioia, Jaramaz B.,
Blackwell M., Simon D.A., Morgan F., Moody J.E., Nikou C., Colgan B.D., Aston C.A.,
Labarca R.S., Kischell E. y Kanade T.: 355:8_22, 1998.
[15] Digital Image Processing a practical introduction using java. S.l. Pearson Education
Limited. Nick, Efford. 2000.
[16] Imagenología. 2da edición. S.l. El manual moderno 2007. Ríos Briones, Nidia y
Saldívar, Donato. Pags. 6,7, 2000
52
DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN PARA UNA HERRAMIENTA DE PLANEACIÓN QUIRÚRGICA ORTOPÉDICA
[17] Sitio web: http://www.rsna.org/Technology/DICOM/index.cfm.
[18] Computed aided diagnosis based on medical image processing and artificial
intelligence methods. Nuclear Instruments and Methods in Physics Research. Stoitsis J.,
Valavanis I., Mougiakakou S. G., Golemati S., Nikita A., Nikita S. K.,. Pag. 569 (2006)
591-595.
[19] Bases del procesamiento de imágenes médicas, Universidad de Los Andes, Facultad
de Ingeniería. Medina Rubén, Bellera Jesús. 2007.
[20] A Survey on Current Methods in Medical Image Segmentation. Annual Review of
Biomedical Engineering. Pham Dzung L., Chenyang X., Prince Jerry L. 1998.
[21] Segmentation (Region Based). Brigham Young University. Morse Bryan S. Lecture
18. 2000.
[22] Encyclopedia of Medical Devices and Instrumentation, volume 6. John Wiley &
Sons, Inc., G., Webster John. New Jersey, USA, Spanish 2nd edición, 2006.
[23] Computer Imaging: Digital Image Analysis and Processing. S.E., Umbaugh: Taylor
& Francis, 2005.
[24] Segmentation, registration and measurement of shape variation via image object
shape. En IEEE Transactions on Medical Imaging. S.M., Pizer, Fritsch D., Yushkevich
P.A., Johnson V.E. y Chaney E.L.Oct 1999.
[25] Image warping with feature curves. En SCCG '03: Proceedings of the 19th spring
conference on Computer graphics. H., Birkholz y Jackèl D. Págs. 199_202, New York,
NY, USA, 2003.