Je travaille sur un programme utilisant la librairie OpenCV (même si je ne suis pas un expert). Une des choses que je dois faire est de dessiner sur l'image. J'ai regardé les fonctions de dessin OpenCV et elles semblent toutes assez simples (Circle, Line, etc), mais le programme ne compilera pas! Il dit ceci pour être exact: erreur C3861: 'Line': identifiant non trouvé. Y at-il quelque chose que je n'ai pas installé? J'ai utilisé le tutoriel sur http://opencv.willowgarage.com/wiki/VisualC%2B%2B_VS2008 pour installer OpenCV sur Visual Studio 2008 et jusqu'à présent, c'est le seul vrai problème que j'ai. S'il vous plaît aidez-moi! J'ai besoin que ce programme fonctionne le plus tôt possible!OpenCV: Dessiner sur une image
Répondre
La fonction permettant de dessiner une ligne dans l'API OpenCV C est nommée cvLine
, et non Line
.
Je pense que vous avez été victime de l'erreur commune suivante: C comprend sont en #include <opencv/core.h>
etc, alors que C++ inclut sont:
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <oppencv2/highgui/highgui.hpp>
Inclure ces pour le dessin et montrant l'image. Utilisez using namespace cv;
puis vous ne devez pas écrire cv::line
juste line
et tout ira bien.
J'ai dû me battre avec le même problème quand j'ai commencé. ;)
(Et utiliser BTW cv::Mat
pour C++)
Vous pouvez maintenant facilement peindre sur les images OpenCV.. Pour cela, vous devez appeler la fonction setMouseCallback(‘window_name’,image_name)
sur opencv. Après cela, vous pouvez facilement gérer la fonction de rappel de la souris sur vos images. Ensuite, vous devez détecter les événements cv2.EVENT_LBUTTONDOWN, cv2.EVENT_MOUSEMOVE and cv2.EVENT_LBUTTONUP
. En vérifiant l'état booléen approprié, vous devez décider comment vous voulez interagir avec les images OpenCV.
def paint_draw(event,former_x,former_y,flags,param):
global current_former_x,current_former_y,drawing, mode
if event==cv2.EVENT_LBUTTONDOWN:
drawing=True
current_former_x,current_former_y=former_x,former_y
elif event==cv2.EVENT_MOUSEMOVE:
if drawing==True:
if mode==True:
cv2.line(image,(current_former_x,current_former_y),(former_x,former_y),(0,0,255),5)
current_former_x = former_x
current_former_y = former_y
elif event==cv2.EVENT_LBUTTONUP:
drawing=False
if mode==True:
cv2.line(image,(current_former_x,current_former_y),(former_x,former_y),(0,0,255),5)
current_former_x = former_x
current_former_y = former_y
return former_x,former_y
Pour plus de détails, vous pouvez voir le lien: How to Paint on OpenCV Images and Save the Image
Sortie:
- 1. Dessiner une superposition sur une image
- 2. Dessiner à une image
- 3. Comment dessiner du texte sur une image?
- 4. python opencv: aucune image
- 5. Dessiner une image avec CGImage?
- 6. Dessiner une boîte sur une image, javascript seulement?
- 7. Dessiner un objet/une image sur une toile
- 8. Dans matlab, comment dessiner une grille sur une image
- 9. comment dessiner une image sur une toile avec transparence/alpha
- 10. opencv combinant une image à une autre image sur les coordonnées données
- 11. Comment créer une image OpenCV à partir d'une image PIL?
- 12. Image au format JPEG OpenCV
- 13. Dessiner voir sur Image dans xml
- 14. Comment dessiner un carré 8x8 sur une image?
- 15. Dessiner une image transparente sur la vue de la surface
- 16. dessiner une image dans un UIView personnalisé
- 17. Quel est le moyen le plus rapide de dessiner une image sur une autre image?
- 18. OpenCV - VideoWriter produit une vidéo avec une image "répétée"
- 19. Comment dessiner une image interactive en PHP?
- 20. Dessiner une image à partir d'un contrôle
- 21. dessiner sur une activité android
- 22. Capture d'une seule image avec opencv
- 23. Comment lire une image d'un fichier YUV dans OpenCV?
- 24. OpenCV: énumérer des formes dans une image binaire?
- 25. Image sur une image
- 26. OpenCV: Comment dessiner une ligne avec des couleurs inversées par rapport à la surface sur laquelle elle devrait être dessinée?
- 27. Comment dessiner correctement une liste et une image dans .net?
- 28. Comment dessiner l'animation sur une toile? (Android)
- 29. OpenCV sur Embedded Platform
- 30. OpenCV sur Ubuntu
Ok ... C'était facile. Rien n'a été dit sur le site -_- http://opencv.willowgarage.com/documentation/python/drawing_functions.html Merci beaucoup! – Juls
@Juls Le lien que vous avez posté est pour la documentation Python, ce qui explique pourquoi les noms des fonctions sont différents. –
+1 Précis. Juls, n'oubliez pas de voter sur sa réponse ou de l'accepter comme solution officielle. – karlphillip