|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Stagiaire R&D Inscription : janvier 2008 Messages : 136 ![]() |
Bonjour,
Ma question porte sur OpenCV2.3, et la différence entre l'utilisation de Mat::data et Mat::at<T> pour accéder à un pixel de l'image. En effet, les deux lignes suivantes me permettent d'accéder à la même valeur. Je me demandais donc s'il y avait une différence entre l'utilisation de l'une ou de l'autre méthode (la documentation que j'ai pu trouver est assez pauvre sur ce point). Merci d'avance. Code :
|
||
|
|
00
|
|
|
#2 |
|
Membre éprouvé
![]() Chercheur en informatique Inscription : avril 2008 Messages : 272 ![]() |
Je pense qu'utiliser "at" diminue la possibilité d'erreurs (du genre dépassement de tableau). Utiliser "data" est probablement mieux si tu veux faire un gros traitement par bloc du genre memcpy. Je pense que c'est aussi un poil plus efficace de parcourir les données en faisant une simple incrémentation du pointeur plutôt que de refaire tout le calcul a chaque fois (ce que "at" fait).
Mais franchement, tant que tu sais ce que tu fais, je pense pas que ça ait une grosse importance... |
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Étudiant Inscription : octobre 2011 Messages : 84 ![]() |
Salut,
Je n'en suis pas sur a 100% mais je dirais que la deuxième est plus rapide car elle lit directement dans un tableau tandis que la première fait appel à la fonction at. Sur de long calcul (avec des boucles sur beaucoup d'images) ça peut faire une différence. Si c'est juste quelques fois, il n'y a pas de difference. |
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Gabriel ingénieur de recherche Inscription : août 2009 Messages : 50 ![]() |
Je confirme que l’accès aux données d'une matrice via "at" est plus lent. Il est déstiné, je suppose, plus à des preuves de concepts ou à des petits calculs que à du temps réel.
Il est également possible d'accéder avec la method "ptr". Celle-ci permet également de travailler sur une "region of interest", ce que ne fait pas "data". |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com