En otra parte de este hilo, user1149913 proporciona un gran consejo (definir un modelo probabilístico) y el código para un enfoque de gran alcance (EM estimación). Dos problemas por resolver:
Cómo lidiar con salidas desde el modelo probabilístico (que son muy evidentes en el 2011-2012 datos y algo evidente en las ondulaciones de las menos inclinadas puntos).
Cómo identificar los valores de partida para el algoritmo EM (o cualquier otro algoritmo).
A la dirección #2, considere el uso de una transformación de Hough. Esta es una característica algoritmo de detección que, para encontrar lineal tramos de características, de manera eficiente puede ser calculada como el Radón transformar.
Conceptualmente, la transformación de Hough representa conjuntos de líneas. Una línea en el plano puede ser parametrizado por su pendiente, $x$, y su distancia, $y$, desde un punto fijo de origen. Un punto en este $x,$ y sistema de coordenadas de lo que designa una sola línea. Cada punto en la trama original determina un lápiz de líneas que pasan por ese punto: este lápiz aparece como una curva en la transformación de Hough. Cuando los elementos en la trama original caída a lo largo de una línea común, o lo suficientemente cerca como para uno, entonces las colecciones de curvas que producen en la transformación de Hough tienden a tener un común de intersección correspondiente a la línea común. Al encontrar estos puntos de mayor intensidad en la transformación de Hough, podemos leer buenas soluciones para el problema original.
Para empezar con estos datos,la primera vez me quede afuera de la auxiliar de cosas (ejes, las marcas de graduación y etiquetas) y en buena medida recortado el obviamente periféricas de puntos en la parte inferior derecha y la esparcieron a lo largo de la parte inferior del eje. (Cuando eso no es recortado, el procedimiento todavía funciona bien, sino que también detecta los ejes, los marcos, las secuencias lineales de las garrapatas, las secuencias lineales de etiquetas, e incluso los puntos de mentir de forma esporádica en la parte inferior del eje!)
img = Import["http://i.stack.imgur.com/SkEm3.png"]
i = ColorNegate[Binarize[img]]
crop2 = ImageCrop[ImageCrop[i, {694, 531}, {Left, Bottom}], {565, 467}, {Right, Top}]
(Este y el resto del código en Mathematica.)
Para cada punto en esta imagen corresponde a un rango estrecho de curvas en la transformación de Hough, visible aquí. Son ondas sinusoidales:
hough2 = Radon[crop2, Method -> "Hough"] // ImageAdjust
Esto hace que visualmente manifiesto el sentido en el que la pregunta es una línea de la agrupación problema: la transformación de Hough, se reduce a un punto de la agrupación problema, para el cual se puede aplicar cualquier método de agrupación que nos gusta.
En este caso, la agrupación está tan claro que el post-procesamiento simple de la transformación de Hough bastado. Identificar las zonas de mayor intensidad de la transformación, he aumentado el contraste y borrosa de la transformación en un radio de alrededor de 1%: eso es comparable a la de los diámetros de los puntos de la trama en la imagen original.
blur = ImageAdjust[Blur[ImageAdjust[hough2, {1, 0}], 8]]
Umbralización el resultado condujo a dos pequeñas manchas cuyos centroides razonablemente identificar los puntos de mayor intensidad: estos estimar el conjunto de líneas.
comp = MorphologicalComponents[blur, 0.777]) // Colorize
(El umbral de $0.777$ se ha encontrado empíricamente: se produce sólo dos regiones y el menor de los dos es casi tan pequeño como sea posible.)
El lado izquierdo de la imagen corresponde a una dirección de 0 grados (horizontal) y, como vemos, de izquierda a derecha, que el ángulo aumenta linealmente a 180 grados. La interpolación, calculo que las dos manchas se centran en 19 y 57.1 grados, respectivamente. También podemos leer en las intersecciones de las posiciones verticales de los blobs. Esta información se obtiene información inicial se ajusta:
width = ImageDimensions[blur][[1]];
slopes = Module[{x, y, z}, ComponentMeasurements[comp, "Centroid"] /.
Rule[x_, {y_, z_}] :> Round[((y - 1/2)/(width - 1)) 180., 0.1]
]
{19., 57.1}
En una manera similar, uno puede calcular las intersecciones correspondientes a estas laderas, dando a estos ajustes:
(La línea roja corresponde a el pequeño punto de color rosa en la foto anterior y la línea azul corresponde a la mayor aqua blob.)
En gran medida, este enfoque tiene repartidas automáticamente con el primer problema: desviaciones de la linealidad citología por los puntos de mayor intensidad, pero normalmente no cambio mucho. Francamente periféricas puntos contribuirá bajo nivel de ruido durante la transformación de Hough, que desaparecerán durante el post-procesamiento de los procedimientos.
En este punto, se puede proporcionar estas estimaciones como valores de partida para el algoritmo EM o para una probabilidad minimizer (que, dado el buen estimaciones, convergerá rápidamente). Mejor, sin embargo, sería el uso de un estimador de regresión robusta como de forma iterativa reponderadas de los mínimos cuadrados. Es capaz de proporcionar una regresión de peso para cada punto. Pesos bajos indican un punto de no "pertenecen" a una línea. La explotación de estos pesos, si se desea, para asignar a cada punto de su línea. Luego, después de haber clasificado los puntos, puede utilizar mínimos cuadrados ordinarios (o de cualquier otro procedimiento de regresión) por separado en los dos grupos de puntos.