quel qu'un connait il l'equivalent en c++ de memcmp de la library string.h
merci de me donner la library et la fonction svp :?:
Version imprimable
quel qu'un connait il l'equivalent en c++ de memcmp de la library string.h
merci de me donner la library et la fonction svp :?:
std::memcmp p-e ?
il n'y aurais pas autr'e chause car ses justement se que je voulais eviter
std::copy ?
[edit] oups fatigué moi je lis memcpy au lieu de memcmp :oops: [/edit]
memcmp permet de faire la comparaison entre deux zones mémoires.
Que voudrais-tu d'autres ?
Tu veux comparer quoi au juste ? Selon le cas ça peut être la seule fonction à utiliser, ou pas.
je veux comparer 2 image succesive prise par une webcam :idea:
je realise aussi l'aquisition et le changement de format de jpg vers bmp
mais pour la comparaison j'ai penser que comparer deux chose en memoire serais la chose la plus efficasse mais j'arrive pas a le faire fonctionner :oops:
Sous quelle forme sont stockées tes images ?
j'essaye de les comparer quant elles sont en bmp :!:
Tu veux dire que tu as un fichier bitmap (avec en-tête, tableau de pixels et tout le tralala) en mémoire c'est ça ?
Les deux images que tu as prises ne seront pas totalement égale (il y a eu un poil plus ou moins de luminosité, des objets ont peut être bougés).
Bref si tu veux comparer deux images, il faudra le faire de façon statistique et pas directement pixel par pixel avec une fonction comme memcmp.
mais le probleme sait que je ne sait pas si je peut exploiter la valeur retourner par memcmp.
il est claire que la luminositer n'etant pas exactement la meme il serait difficile de dire que les image sont identique neanmoins si je pouvait faire le un calcule sur la differance des memoire en pourcentage (si la memoire est a 5% identique a la 2 :idea: ) alors les image serait identique 8)
si vous avez une autre methode (fonctionnelle sous linux :wink: ) je suis prenneure :)
Pardon mais que viens faire string.h là-dedans ? ; je ne comprends pas.
j4xl ne va pas chercher Midi à 14heures tu vas perdre ton temps.
Toutes les fonctions C fonctionnent aussi bien en C++ alors tu peux prendre memcmp.
De toute façon quand tu désassembles un code C++ avec par exemple VC+ et que tu utilises iostream avec ifstream tu finis par tomber sur .....fread du C.
M'étonnerais pas que cin et cout reposent sur le banal scanf et printf du C...
Non il ne faut pas prendre memcmp !Citation:
Envoyé par j4xl
Pour la bonne et simple raison que la mémoire utilisée n'est pas la même pour une image en 256 niveaux de gris qu'en 16millions de couleurs.
On ne fait pas comme sous DOS ou on copie des blocs de mêmoire vers la mémoire écran.
Par exemple en win32 il faut utiliser les contextes de périphériques HDC, les structures de Bitmap BITMAPINFOHEADER et autres toutes les fonctionnalités GDI.
Sous Linux il faut étudier les API adéquates pour travailler les images
he ses bien que tu sache te débrouiller en win32 :roll:
mais comme tu la lue plus haut dans se topic moi joperre sous linux et une comparaisons a la barbare pixel par pixel :twisted: est facile a faire mais pas tres elegante et surtout pas assez rapide comme methode. :!:
pour string.h je croi t avoir vue que memcmp y est declarer en C "je peut me tromper je suis un newbie de la prog" :?
donc comme je l'ai dit plus haut si vous aver des solution a me proposer "sous linux" elle seront les bien venues :wink:
et mercie d'avoir essayer de repondre a mont probleme mat.M
Comparer des images est un problème bcp plus complexe que ça... Tu ne peux pas t'en sortir avec une simple fonction c++ (comme tu as pu le constater je pense). :roll:
Ici tu veux calculer, en quelque sorte, l'ecart entre deux images. C'est un problème mathematique qui est du domaine de la vision par ordinateur.
Je n'ai pas le temps de te donner une idée d'algorithme... meme si j'en ai certainement un qui traine dans mes vieux cours de vision :roll: encore faut il mettre la main dessus :lol:
Bref, recherche des methodes de vision par ordinateur pour comparer des images.
Bon courrage :wink:
Il est clair que si tu peut comparer chaque pixel de ton image, tu m'arrivera a rien (surtout image compressé)
Apres tu peut utiliser differante technique pour ta comparaison :
Si tu film un objet avec un fort contrast avec le fond tu peut imaginé un seuillage de ton image, et la calculer le nombre/deplacement de pixel seuillé.
Pour tester t algorithme, tu peut créer facilement un plug-in pour vitual dub, avec des images en niveau de gris.