Me gustaría encontrar el "mejor" ajuste de una elipse a formas contiguas, posiblemente cóncavas como:
Que he probado
Pensé que se podía asignar la dirección de los ejes mayor y menor. de la elipse mapeando los valores de píxel a las coordenadas, restando la media y guardando los dos vectores propios más grandes de un PCA. Parece que funciona bastante bien para encontrar la dirección:
Mi problema es determinar la longitud de estos dos vectores. Por ahora, he usado , de los valores propios de la PCA. Esto parece subestimar la longitud. ¿Cómo puedo determinary o como alternativa, ¿se ajusta mejor una elipse a estas formas?
computer-vision
shape-analysis
Enganchado
fuente
fuente
Respuestas:
Continuando con mi respuesta eliminada ... Si toma una elipse llena y proyecta todos los puntos en elX eje, se proyectarán más puntos cerca del origen que en los extremos, en una distribución de forma circular. No es una distribución gaussiana, y no la distribución uniforme que mencioné en la analogía 1-D en mi respuesta eliminada. La distribución resultante en realidad tiene pdfp ( x ) =( 1 - (Xr)2)--------√ , y desde allí puede calcular que la desviación estándar es r2 .
Por lo tanto, si los datos se distribuyen uniformemente en el interior de una elipse de radiosa , b (cuyos ejes son el X y y ejes), la desviación estándar de la X coordenada es una2 y de la y coordenada es si2 . Entonces, el factor de corrección que necesita usar es simplemente 2.
Aquí hay un ejemplo trabajado en python que recupera el centro (matriz de traducción), la matriz de rotación y los radios de una elipse desde puntos muestreados aleatoriamente desde su interior:
fuente
Compruebe el ajuste de mínimos cuadrados directos de elipses por Fitzgibbon et al. ¡Es un problema de valor propio simple, cuyo tamaño no es proporcional al número de píxeles en su muestra! El único paso que depende de la cantidad de píxeles que le arroje es el cálculo de una matriz de dispersión, que aún esO(n) .
fuente