Pregunta

Actualmente estoy trabajando en replicar algunas de las funcionalidades de la función de Matlab regionprops en Octave. Sin embargo, tengo un poco de colgar en un subconjunto de la funcionalidad. El 'excentricidad', 'MajorAxisLength', 'MinorAxisLength' y las propiedades 'orientación' son mi punto de fricción. En la documentación, todos ellos se derivan de "... la elipse que tiene el mismo segundo-momentos como la región".

Así que mi pregunta es, ¿cuáles son estos segundos-momentos, y cómo puedo encontrarlos?

yo estaba buscando en este enlace: http://en.wikipedia.org/wiki/Image_moments

En serio, es sólo me dejó más confundido. ¿Alguien puede apuntar hacia algo un poco más amigable para los principiantes? Gracias.

¿Fue útil?

Solución

Por "segundos momentos", significa la documentación de la segunda .

En el caso de datos de una sola dimensión, este sería el varianza (o cuadrado de la desviación estándar).

En su caso, en el que tiene datos de dos dimensiones, el segundo momento central es la matriz de covarianza .

Si X es una matriz de n-por-2 de los puntos en su región, se puede calcular la matriz de covarianza Sigma en MATLAB como esto (no probado):

mu=mean(X,1);
X_minus_mu=X-repmat(mu, size(X,1), 1);
Sigma=(X_minus_mu'*X_minus_mu)/size(X,1);

Ahora, ¿qué tiene esto que ver con elipses? Bueno, lo que estamos haciendo aquí es, en efecto, el ajuste de una distribución normal multivariante a sus datos . La matriz de covarianza determina la forma de que la distribución, y las líneas de contorno de una distribución normal multivariante - esperar a que - son elipses !

Las direcciones y longitudes de los ejes de la elipse están dados por los vectores propios y valores propios de la matriz de covarianza:

[V, D]=eig(Sigma);

Las columnas de V son ahora los vectores propios (es decir, las direcciones de los ejes), y los valores en la diagonal de D son los valores propios (es decir, las longitudes de los ejes). Por lo que ya tiene el 'MajorAxisLength' y 'MinorAxisLength'. La orientación es probablemente sólo el ángulo entre el eje mayor y el horizontal (pista: utilizar atan2 para calcular esto desde el vector que apunta a lo largo del eje mayor). Por último, el excentricidad es

sqrt(1-(b/a)^2)

donde a es la longitud del eje mayor y b es la longitud del eje menor.

Otros consejos

No estoy muy seguro, pero no esta refiero a la estadística noción de href="http://en.wikipedia.org/wiki/Moment_about_the_mean" (como en función de la generación de momento):

  

Los momentos centrales (momentos alrededor de la media):
   mu_k = E[(X − E[X])^k], donde E es el valor esperado

Así, los cuatro primeros momentos son, respectivamente: {1, varianza , asimetría, curtosis}
. Pero, de nuevo puedo estar equivocado;)

No es exactamente la respuesta que buscas, pero podría ayudar a alguien.

he escrito este libro sobre el tema de la mecánica y escribí archivos-m para calcular el momento de inercia del área:

de masterización Mecánica utilizando MATLAB 5

El código de él se puede encontrar aquí:

intercambio de archivos

Capítulo 9 debe ser de su interés. Sospecho que podría utilizar el código como punto de partida.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top