|
Bas de page | |
---|---|
Auteur | Sujet : langage C transformée de Hough |
Publicité | Posté le 25-02-2010 à 05:21:49 |
TotalRecall | Je ne suis pas familier de l'implémentation de ces algorithmes de transformation mathématique, mais sans commentaires ton code est à peu près imbitable pour moi et je doute qu'un autre (à moins d'être un champion de ce genre d'algo) ne soit plus à l'aise et plus enclin à y consacrer du temps pour comprendre ton implémentation. Si l'implémentation est ok, le problème vient peut être de ton image d'entrée ou de tes constantes dans le code ? On doit pouvoir trouver des dizaines d'exemples d'implémentations sur google, avec des images tests. Message édité par TotalRecall le 25-02-2010 à 08:55:49 --------------- Topic .Net - C# @ Prog |
in_your_phion | pas mieux par contre quand on travaille sur des images, on utilise généralement des tableau à une dimension, ce qui est beaucoup, beaucoup plus facile à utiliser et à manipuler (ça t'évite les doubles pointeurs,etc). Je te conseillerais de faire cela et de recréer ton algo from scratch. la correspondance est : image[y][x] = tab[x + SX*y], où SX est la taille en X de ton image. Tu peux créer une macro par exemple pour acceder à tes images :
quand tu alloues un tableau pour une image, c'est:
2/ il faut aussi que tu vérifies comment fonctionne ton algo sur les bords de ton image .... c'est une source d'erreur fréquente, car une image est un ouvert de R2. Après, je sais pas si c'est ça le problème mais les "problèmes de bords" peuvent se propager sur l'image et donner n'importe nawak. 3/ vérifie les problèmes de cast. A mon avis l'erreur est là. Exemple : tu déclare un
et tu affectes la valeur de retour de floor(); qui renvoie un flottant ou un double. good luck Message cité 1 fois Message édité par in_your_phion le 03-03-2010 à 18:52:08 |
Joel F Real men use unique_ptr |
sauf que non. Les allocations façon NRC sont bien plus simples que ces calculs d'index, cf les MOULTS topics que j'ai fait sur le sujet. Message cité 1 fois Message édité par Joel F le 03-03-2010 à 19:18:34 |
in_your_phion |
yo, c'est quoi les allocations façons NRC ? En tous cas tous le monde autour de moi utilisait des tableaux 1D, j'ai jamais vu personne utiliser des tableaux 2D en fait, mais bon c dans la recherche donc bon. Message édité par in_your_phion le 04-03-2010 à 11:42:05 |
TotalRecall | Au risque de dire une connerie je suis quasi sûr qu'il parle de ceci : http://www.nrbook.com/a/bookcpdf.php (par exemple, y a plein d'autres liens, cf Numerical Recipes in C) Et en l'occurrence pour les tableaux 2D je pense qu'il parle du principe de tiling qui consiste à ne pas parcourir tout le tableau mais à découper celui-ci en zones carrées parcourues séquentiellement, ce qui va plus vite qu'un parcours intégral. Mais là je ne suis pas sûr du tout qu'il parle de ça . Message édité par TotalRecall le 04-03-2010 à 11:59:57 --------------- Topic .Net - C# @ Prog |
TotalRecall | Si ça peut aider : http://www.google.fr/search?q=joel [...] =firefox-a --------------- Topic .Net - C# @ Prog |
in_your_phion |
|
snafu8 | Je pense qu'il parle du fait d'allouer ton tableau 1D à l'ancienne et d'ajouter en plus un tableau de pointeurs vers les débuts de chaque ligne, un peu comme ça :
|
Joel F Real men use unique_ptr |
|
Publicité | Posté le 04-03-2010 à 13:03:34 |
rufo Pas me confondre avec Lycos! | Question : j'ai vu dans wikipedia que la transfo de Hough était brevetée. Ca veut pas dire que quand on veut l'utiliser dans un programme il faut verser des sous au détenteur du brevet? --------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
TotalRecall | C'est possible (j'en sais absolument rien en fait ) mais ça m'etonne un peu... En imagerie c'est assez fréquemment utilisé, il y en a des implémentations libres un peu partout et des variantes (comme celle qui étend l'algo d'origine aux autres formes géométriques)... Je pense que c'est plus une histoire de protection intellectuelle de la paternité du truc qu'une histoire de sous. Message édité par TotalRecall le 04-03-2010 à 16:21:12 --------------- Topic .Net - C# @ Prog |
snafu8 | le brevet date de 1962 et un brevet, même le plus velu possible ne peut pas durer plus de 20 ans, pour que la propriété intellectuelle ne joue pas un rôle de ralentisseur de l'utilisation des avancées technologiques (en informatique, ça peut faire rire 20 ans, mais le concept de brevet est plus ancien et cette limite peut trouver son sens). |
gilou ModérateurModzilla | Une petite remarque en passant: plutôt que thetaRad=6.28*thetadeg/360 écris thetaRad=(6.28*thetadeg)/360 c'est plus lisible, et tu est sure qu'il va pas y avoir d'abord une division entière thetadeg/360 (ce n'est peut être pas le cas ici, mais je n'ai jamais eu envie de m'encombrer l'esprit avec les tables d'ordre de précédence quand un parenthèsage bien fait permet de ne pas se poser la question). Au lieu de faire plusieurs fois for (thetadeg = 0; thetadeg <360; thetadeg++) Autre point: A+, Message édité par gilou le 05-03-2010 à 17:09:24 --------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
Sujets relatifs | |
---|---|
[C++/CLI] Dispose et delete | [C/C++] C ou C++ pour des performances optimales? |
C - attendre n milliseconds entre 2 iterations d'une boucle | [C++/CLI] Surcharge de constructeur |
Convertir des formules Excel dans un langage algorithmique | C'est quoi un vecteur en language C ? |
[Résolu] Batch to C | Aide Programmation C Arguments |
Identification utilisateur en C# | Mastermind en algo puis en C |
Plus de sujets relatifs à : langage C transformée de Hough |