"J'ai ajouté le linker (-l /usr/include/opencv) et là bizard, il me dit : "ld cannot find -l/usr/include/opencv". "
Ce n'est pas la bonne option. -I (i majuscule) sert à spécifier un dossier de recherche des fichiers d'en tête. -l (L minuscule) sert à spécifier un fichier de bibliothèque et -L sert pour un dossier de recherche pour les bibliothèque. Donc toi, tu as besoin de -L /usr/lib/opencv peut-être pour le linker (mais pas forcément, et il semble que non vu que ça a fni par fonctionner) et certainement de -lopencv ou -lcv (ici c'est un L minuscule) selon le nom du fichier de la bibliothèque qui doit être liée. Par contre, tu n'a pas besoin de -I /usr/include/opencv (ici c'est un i majuscule) car dans ton code, tu fait #include<opencv/foo.h> et donc tu lui donne déjà le nom du dossier opencv. Le dossier /usr/include est de toutes manière dans le chemin de recherche des entêtes. Si tu utilise cette option de la ligne de commande, alors, tu peut directement faire #include <foo.h>.
(je suis bien conscient que ton problème était résolu, mais c'est juste pour détailler la solution).