Hay una gran y repetitivo transformada de Hough en un trozo de código que estoy vagamente adjunto demasiado . El responsable de esa parte del código ha estado experimentando con matrices dispersas (en realidad, un C++ std::map
introducido en el índice de la celda si entendí bien su presentación) para el acumulador con cierto éxito.
Supongo que la velocidad se relaciona con problemas de localidad de caché, y ciertamente depende de que los datos sean escasos.
Actualización: El software que se hace referencia anteriormente está destinado a servir para muchos experimentos de física de partículas, pero se utilizó originalmente en un proyecto de banco de pruebas (es decir, a pequeña escala). Como nos tomamos en serio la tarea de hacer proyectos más grandes y comenzamos a hacer Monte Carlo para ellos, la transformada Hough ha vuelto a ser una especie de cuello de botella incluso con la matriz dispersa.
Todavía no tenemos una solución, pero uno de los colegas encontró Gandalf que incluye "fast hough transform", que parece evaluar la transformación en forma de árbol cuádruple (en 2D, presumiblemente se usa un octárbol en 3D) para reducir el orden del trabajo. Probablemente vamos a experimentar con esto.
Otra actualización: Un colega finalmente implementó una transformación Hough progresiva y probabilística en nuestro código que actualmente parece ser la versión más rápida que tenemos. Funciona mejor si no requiere que cada punto se asigne a una línea.
¿tiene un ejemplo real de datos sobre los que aplicar este código? Parece que hay varias optimizaciones posibles, algunas son independientes de los datos, pero otras dependerán de la distribución real de datos en img y del tamaño de imag. – kriss
un ejemplo de los datos que tengo está en http: // stackoverflow.com/questions/4372259/hough-transform-error-in-matlab-and-opencv me doy cuenta de que solo hay 3 puntos por columna (así es como creé esas imágenes), así que debería haber alguna manera de acelerarlo, pero la parte de tiempo consumido está llenando el acumulador y no pasando por la imagen – Denis