Sé que este problema se ha resuelto antes, pero he tenido grandes dificultades para encontrar cualquier literatura que describa los algoritmos utilizados para procesar este tipo de datos. Básicamente estoy haciendo algunos hallazgos de borde en un conjunto de datos 2D. Quiero ser capaz de encontrar un par de puntos en un diagrama de ojo (generalmente utilizado para calificar los sistemas de comunicaciones de alta velocidad), y como no he tenido experiencia en el procesamiento de imágenes, me cuesta escribir métodos eficientes.Detección de bordes bidimensional eficiente en Python
Como probablemente pueda ver, estos diagramas se llaman así porque se parecen al ojo humano. Pueden variar mucho en grosor, pendiente y ruido, dependiendo de la señal y del sistema bajo prueba. Las medidas que normalmente se toman son la fluctuación de fase (el grosor horizontal de la región de cruce) y la altura del ojo (medida en algún porcentaje específico del ancho o el punto máximo posible). Sé que esto se puede hacer mejor con el procesamiento de imágenes en lugar de un enfoque más lineal, ya que mis intentos hasta ahora tardan varios segundos en encontrar el lado izquierdo del primer cruce. ¿Alguna idea de cómo debería hacerlo en Python? Ya estoy usando NumPy para hacer parte del procesamiento.
Aquí hay algunos example data, está formateado como una matriz 1D con los datos asociados del eje x. Para este ejemplo en particular, debe dividirse cada 666 puntos (2 * int ((1.0/2.5e9)/1.2e-12)), ya que la velocidad de la señal era de 2.5 GB/s, y el tiempo entre los puntos era 1.2 ps
Gracias!
su pasta de datos no funcionó ... – so12311
Debe corregirse ahora – bheklilr
Suponiendo que tiene los datos originales utilizados para generar el gráfico, tal vez sería mejor que utilizara esos datos directamente que analizar un gráfico procesado. –