L'acquisition d'événements par clic droit ne fonctionne pas avec opencv-python

Contenu

Comme le titre l'indique, j'obtenais des événements de souris avec opencv-python, ** Quand j'ai essayé d'obtenir des événements de clic droit, le menu était ouvert avec la fonction par défaut **. J'ai trouvé que certaines personnes se débrouillent bien sans rien faire, donc la version opencv peut en être la cause.

--Environnement Ubuntu 18.04 LTS
opencv installer avec pip (probablement à cause de cela) --Date et l'heure 2019/11/20

Solution

documentation opencv 2.2 »Interface utilisateur stackoverflow/Why does a right click open a drop down menu in my OpenCV imshow() window?

Selon **, un clic droit pour ouvrir le menu semble être une fonctionnalité de ce backend Qt **. Il semble donc que nous devions nous débarrasser de cette fonctionnalité ou utiliser un autre backend. Je ne suis pas sûr du backend et je n'ai pas besoin de cette fonctionnalité, je vais donc la supprimer.

[D'après le document officiel ci-dessus]

--flags Drapeaux de fenêtre. Les indicateurs actuellement pris en charge sont: --CV_WINDOW_NORMAL ou CV_WINDOW_AUTOSIZE: Si vous spécifiez CV_WINDOW_NORMAL, l'utilisateur peut modifier la taille de la fenêtre. Inversement, si vous spécifiez CV_WINDOW_AUTOSIZE, la taille de la fenêtre est automatiquement ajustée pour s'adapter à l'image affichée (voir ShowImage), et l'utilisateur ne peut pas modifier la taille de la fenêtre. --CV_WINDOW_FREERATIO ou CV_WINDOW_KEEPRATIO: Si CV_WINDOW_FREERATIO est spécifié, la taille de l'image sera ajustée sans conserver le rapport hauteur / largeur, et inversement, si CV_WINDOW_KEEPRATIO est spécifié, le rapport hauteur / largeur sera ajusté. --CV_GUI_NORMAL ou CV_GUI_EXPANDED: Vous pouvez spécifier CV_GUI_NORMAL pour afficher la fenêtre précédente sans la barre d'état et la barre d'outils. Inversement, si vous spécifiez CV_GUI_EXPANDED, une nouvelle interface graphique améliorée sera affichée.

Apparemment, vous pouvez le faire en spécifiant l'argument flags de cv2.namedWindow.

cv2.namedWindow("hoge", CV_GUI_NORMAL)
cv2.namedWindow("hoge", cv2.CV_GUI_NORMAL)
cv2.namedWindow("hoge", cv.CV_GUI_NORMAL)

Aucun n'était bon !!!

Je me demande pourquoi ...

stackoverflow / NameError: le nom global'CV_GUI_NORMAL 'n'est pas défini La valeur s'écrit, ...

WINDOW_AUTOSIZE = 1
WINDOW_FREERATIO = 256
WINDOW_FULLSCREEN = 1

WINDOW_GUI_EXPANDED = 0
WINDOW_GUI_NORMAL = 16

WINDOW_KEEPRATIO = 0
WINDOW_NORMAL = 0
WINDOW_OPENGL = 4096

WND_PROP_ASPECT_RATIO = 2

WND_PROP_AUTOSIZE = 1
WND_PROP_FULLSCREEN = 0
WND_PROP_OPENGL = 3
WND_PROP_VISIBLE = 4

WINDOW_GUI_NORMAL = 16, donc ...

cv2.namedWindow("hoge", 16)

Ça a marché !!!

Les numéros ci-dessus sont décrits en détail dans l 'interface graphique de haut niveau.

Recommended Posts

L'acquisition d'événements par clic droit ne fonctionne pas avec opencv-python
La commande gqlgen ne fonctionne pas avec gqlgen de go
Lorsque la spécification générique ne fonctionne pas avec pylint
Jour 65 (Solution) Le bloc-notes Jupyter ne fonctionne pas avec le noyau non connecté.
LocateCenterOnScreen ne fonctionne pas sur PyAutoGui
(En cours d'investigation) Caméra USB qui ne fonctionne pas avec WebRTC sur RPi4
[VScode] Le format autopep8 ne fonctionne pas [Python]
Virtualenv ne fonctionne pas sur Python 3.5 (Windows)
Exemple de ce qu'il faut faire lorsque l'exemple de script ne fonctionne pas (OpenCV-Python)
Après l'installation de php7.2, la commande php ne fonctionne pas
Jinja2 2.9.6 ne fonctionne pas sur la série Lambda Python 3
[Python] Expression (1,2) ne fait pas de taple avec des parenthèses
[systemd] Comment faire face au problème que fancontrol ne fonctionne pas après la suspension