es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Intersección de líneas y polígonos: intentando implementar la Regla de Simpson Modificada para la estimación del volumen del ventrículo izquierdo.

Básicamente, la regla modificada de Simpson es la medida empírica estándar para la estimación del volumen del ventrículo izquierdo (normalmente utilizando ecocardiografía). Estoy tratando de implementar este método desde cero utilizando OpenCV y Python. Pude obtener la longitud desde el ápex hasta la base, pero necesito obtener el diámetro de los discos que pasan a través de la línea vertical.

Contorno de ejemplo del ventrículo izquierdo. [A] es el contorno del VI, [B] es la línea vertical desde el ápex hasta la base, y [C] son los diámetros de los discos. (Disculpa por el dibujo pobre, no creo que se me permita compartir los resultados de predicción de mi Modelo de Segmentación).

Mi pregunta es: ¿cómo puedo determinar los diámetros de los discos que pasan a través de la línea vertical y que todos deben tener la misma pendiente? Es decir, C1, C2, …, C20 deben tener la misma pendiente y pasar a través de la línea vertical. ¿O no es necesario que tengan la misma pendiente?

Mi método actual para determinar estos diámetros implica obtener los puntos del contorno, luego dividir la lista en dos basándose en los puntos finales de la línea vertical. Luego, trazo una línea desde los puntos de una lista con los puntos de la otra lista.

def obtener_discos(img, mascara):
  #img: imagen de la máscara en RGB
  #mascara: resultado del modelo de segmentación (en escala de grises)

  cnts = cv.findContours(mascara, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_NONE)
  c1 = cv.line(img,((int(cnts[5,0]), int(cnts[5,1]))),((int(cnts[-5,0]), int(cnts[-5,1])))

...

return img

¡Gracias!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para determinar los diámetros de los discos que pasan a través de la línea vertical y tienen la misma pendiente, puedes seguir los siguientes pasos:

    1. Obtener los puntos del contorno del ventrículo izquierdo (VI).
    2. Encontrar los puntos finales de la línea vertical (B) desde el ápice hasta la base.

    3. Dividir la lista de puntos del contorno en dos, basándose en los puntos finales de la línea vertical.

    4. Para cada punto en una lista, encontrar el punto más cercano en la otra lista.

    5. Calcular la pendiente de la línea que pasa a través del punto y su punto más cercano.

    6. Encontrar el punto medio entre el punto y su punto más cercano.

    7. Encontrar el bisector perpendicular de la línea que pasa a través del punto medio y tiene la pendiente calculada en el paso 5.

    8. La intersección de este bisector con la línea vertical es el centro del disco (C).

    9. El diámetro del disco se puede calcular encontrando los dos puntos del contorno a cada lado del centro y determinando su distancia.

    10. Repetir los pasos 4-9 para todos los puntos en una lista.

    11. Los discos (C1, C2, …, C20) deben tener la misma pendiente y pasar a través de la línea vertical.

    Es necesario que los discos tengan la misma pendiente y pasen a través de la línea vertical, ya que esto asegura que todos sean perpendiculares a la línea y tengan la misma orientación.

Comments are closed.