Erreur lors de l'impression sur une image à l'aide d'OpenCV putText
Je suis en train d'imprimer du texte sur une image (cv::Mat
) à l'aide de cv::putText
string text = "Funny text inside the box";
int fontFace = FONT_HERSHEY_SCRIPT_SIMPLEX;
double fontScale = 2;
int thickness = 3;
cv::Point textOrg(10, 130);
cv::putText(img, text, textOrg, fontFace, fontScale, Scalar::all(255), thickness,8);
Mais il en résulte une erreur de violation d'accès lors de l'exécution. Alors que
cv::putText(img, "text", textOrg, fontFace, fontScale, Scalar::all(255), thickness,8);
résultats "???le texte" a été imprimée sur l'image. Toute idée de ce qui pourrait mal se passer?
Je ne pouvais pas vraiment comprendre quel était le problème, mais j'ai eu autour de lui en utilisant cvPutText() à la place, et qui fonctionne très bien.
se pourrait-il que vous insérez un lien vers la version de débogage de opencv bibliothèques lors de la compilation en mode release (ou vice versa)?
Je reçois les étiquettes de ce genre sur la barre de titre de windows créées avec
vous avez probablement mélangé certaines libs, car il fonctionne très bien dans mon projet, merci 🙂
se pourrait-il que vous insérez un lien vers la version de débogage de opencv bibliothèques lors de la compilation en mode release (ou vice versa)?
Je reçois les étiquettes de ce genre sur la barre de titre de windows créées avec
cv::imshow
...vous avez probablement mélangé certaines libs, car il fonctionne très bien dans mon projet, merci 🙂
OriginalL'auteur bsidd | 2012-02-09
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr de ce que le protocole correct pour ce qui est, mais j'ai eu exactement le même problème que @arbguy et ma correction était à cause de @Vlad commentaire. @Vlad commentaire que j'ai vérifié pour voir si j'ai été en utilisant le bon (debug) bibliothèques pour ma version de Débogage. Je n'étais pas. Réglage de la bibliothèques de la version de débogage de bibliothèques réparé mon erreur et j'ai été en mesure d'utiliser cv::putText correctement. Voici ce que j'ai fait (à l'aide de visual studio 2012):
Mis tous mes openCV .lib les références à la "d.lib" versions. Vos références seront différents en fonction de bibliothèques que vous utilisez, mais voici mes références:
J'ai eu ensuite recopier le bon .bibliothèques dll à mon répertoire exécutable. En fait, j'ai une étape de post-construction que les copies nécessaires .les fichiers dll dans le répertoire binaire. J'ai également eu à copier
"tbb_debug.dll"
. Il est situé dans%OPENCVDIR%\build\common\tbb\ia32\vc10
(pour mes 32-bits). la liste finale des .les fichiers dll j'ai dû copier sur a:opencv_imgproc242d.dll
opencv_core242d.dll
opencv_highgui242d.dll
Après avoir fait cela, tout a fonctionné! NOTE: je ne suis pas un C++ expert donc si quelqu'un a une meilleure suggestion pour ce faire, je suis heureux. Aussi, je ne suis pas sûr de la façon de créditer correctement @Vlad pour la résolution de ce problème car il est celui qui a suggéré la solution correcte.
OriginalL'auteur Julia Schwarz