Question

J'ai donc l'image comme ceci

 CG généré salle de bain «  loading=
(source: de-viz.ru )

Je veux obtenir quelque chose comme ça (je hEvent attiré toutes les lignes que je veux, mais j'espère que vous pouvez obtenir mon idée)


(source: narod.ru )

J'ai besoin d'un algorithme super rapide pour trouver toutes les lignes droites sur elle. Je veux donner aux paramètres de l'algorithme comme longueur min et la distorsion de ligne max. Je veux par rapport à l'image coords pixel points de début et de fin de lignes.

Alors sur cette image pour trouver toutes les lignes entre les carreaux et thouse 2 lignes noires sur le dessus.

Je dois donc algorithme pour les lignes droites de Finding super rapide de différentes couleurs sur l'image.

Y at-il tel algorithme? (Super Duper rapide =)

Était-ce utile?

La solution

Vous devez utiliser des méthodes de traitement d'images sophistiquées telles que la détection Canny Edge, détection de bord Marr-Hildreth, filtrage gaussien et Transformée de Hough etc.

Mais l'existence de la méthode « super rapide » est très peu probable.

complexité minimale de la plupart des algorithmes de traitement d'image est au moins O(N^2).

Par "super rapide" Je veux dire au plus O(1);)

Quelques liens qui pourraient aider:

  1. http://www.sci.utah.edu/~ cscheid / spr05 / ImageProcessing / project4 /
  2. http://www.contrib.andrew.cmu.edu/~ Suppe / Mobot /
  3. http://www.dunwich.org/baptiste/sic /ecms/ecpublis.html#2
  4. http : //wayback.archive.org/web/20090304153603/http: //hdebruijn.soo.dto.tudelft.nl/jaar2006/alders.htm

Autres conseils

Je pense que vous avez besoin d'un transformation de Hough ou transformée de radon . Lisez les articles que j'ai Linked et ne hésitez pas à poser des questions:)

Considérons les points de contour algorithme décrit dans http://outliner.codeplex.com/ Elle produira les bords décrit vecteur sous la forme de courbes de Bézier organisés en coups. Vous avez besoin d'un certain effort de choisir coups les plus Straigh (les points d'extrémité sont prêts à l'emploi). Ce algoritms est assez rapide mais pas super duper.

Je ne sais pas comment il fonctionnera dans votre application, mais vous pouvez essayer une sorte de l'approche de détection de bord. Je ne sais pas comment convertir ces bords dans des vecteurs, si c'est ce que vous cherchez, mais cela pourrait être un endroit pour commencer. Quoi qu'il en soit, certains des algorithmes de détection de bord (par exemple, la discrète opérateur Laplace) sont assez rapide sur moderm architectures de calcul.

Oh, et si vous faites cela, vous voulez probablement convertir l'image en YCbCr et il suffit d'utiliser la composante de luminance (Y). C'est aussi une opération rapide

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top