[C] Comparer 2 bmp de tailles differentes

Fermé
Cedric - 19 janv. 2009 à 20:07
 Cédric - 20 janv. 2009 à 19:33
Bonjour à tous,
Je bosse actuellement sur un projet dans le cadre de mes études qui me donne du fil à retordre et apres des recherches google infructueuses, je me permet de poster ici.
Je souhaiterais comparer deux images bmp de tailles différentes. Je sais lire pixel par pixel mais le probleme est que si elles ne sont pas de la même taille, ca m'est inutile.
J'ai pensé alors a redimensionner l'une des images (agrandir l'une ou rétrécir l'autre) mais la aussi, je ne vois pas comment "creer" ces pixels manquants.
Je précise que je code en C.
Si vous avez des pistes je suis preneur !

Merci d'avance pour vos réponses

Cédric

4 réponses

bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 860
20 janv. 2009 à 12:46
Qu'appelles-tu "comparer" 2 bmp de tailles différentes ?
Si c'est ce que je pense : une première image, et une seconde toute blanche (ou noire) contenant un morceau de la première, je ne vois pas pourquoi vouloir redimensionner les images...
Dans ta matrice de pixels (correspondant à ton image) tu "détectes" où se trouve toute la zone unie pour ainsi "détecter" où se situe le bout d'image dans l'image. Après il te suffit de voir si ce bout d'image est dans l'autre.
0
Tout d'abord merci pour ta réponse. Je vais donc detailler un peu plus ^^
EN fait, je souhaite comparer deux images bmp de panneaux routier mais chacun a une taille différente. C'est pourquoi je cherche à retrecir la plus grande image pr pouvoir les comparer pixel par pixel.
Néanmoins je ne vois pas vraiment comment faire :/

Merci d'avance pour ta réponse ^^
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
20 janv. 2009 à 16:29
pour la reduire tu pourrait par exemple decouper ton image en matrice de 3x3 pixel ensuite tu considere que chacune de ces matrice n'est en realité qu'un seul pixel
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
20 janv. 2009 à 17:09
Salut.
La solution : interpolation ! Au lieu de voir ton image comme un signal discret de pixel, tu la voi comme un signal continue prenant des valeurs réèlles.
La plus simple, interpolation linéaire.
Par exemple, si tu as deux pixels contiguë de valeur 128 et 120, tu dit que la valeur du point que tu veux obtenir est proportionnel à la distance.
Si ton point est à 1/3 de la distance entre les deux pixel sa valeur sera : (128*2+120) /3 si il est entre les deux, se sera : (128+120)/2.
voilà.
0
Merci beaucoup à vous deux pour ces réponses, je vasi de ce pas fuiner du côté de l'interpolation ^^ !!!
Je vous tiens au courant :)
0