diseÑo de un algoritmo de triangulaciÓn …148.206.53.84/tesiuami/uami16778.pdf · diseÑo de un...

54
0

Upload: vophuc

Post on 18-Sep-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

0

Page 2: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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

Page 3: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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

Page 4: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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].

Page 5: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 6: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 7: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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

Page 8: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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

Page 9: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 10: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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

Page 11: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 12: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 13: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 14: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 15: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 16: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 17: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 18: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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-

Page 19: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 20: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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

Page 21: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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);

Page 22: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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;

Page 23: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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);

Page 24: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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

Page 25: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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).

Page 26: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 27: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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

Page 28: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 29: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 30: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 31: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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

Page 32: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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).

Page 33: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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

Page 34: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 35: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 36: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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).

Page 37: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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

Page 38: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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,

Page 39: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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

Page 40: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 41: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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

Page 42: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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

Page 43: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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).

Page 44: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 45: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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);

Page 46: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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)

Page 47: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 48: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 49: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 50: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.

Page 51: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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

Page 52: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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

Page 53: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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

Page 54: DISEÑO DE UN ALGORITMO DE TRIANGULACIÓN …148.206.53.84/tesiuami/UAMI16778.pdf · DISEÑO DE UN ALGORITMO DE ... 7 5.4 PROCESAMIENTO DIGITAL DE ... Los rayos X son radiaciones

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.