python - 为什么右键单击会在我的 OpenCV imshow() 窗口中打开下拉菜单?

标签 python opencv imshow

我正在尝试运行 OpenCV Grabcut Sample在我的系统上:

  • OpenCV 版本 4.1.0
  • Python 版本 3.6.8
  • 空闲版本 3.6.8
  • Ubuntu 18.04.2

这是来自 cv2.getBuildInformation() 的构建信息: build information

在 Grabcut 示例脚本中,我需要“使用鼠标右键 在对象周围绘制一个矩形。”出于某种原因,当我单击鼠标右键时会出现一个下拉菜单(这是我单击并按住鼠标右键):

drop down

这以前没有发生过,但自从我重新格式化我的电脑并重新安装 OpenCV 后,我得到了这个下拉菜单。 imshow 窗口看起来也不一样。我尝试安装很多视频编解码器包 ( from this tutorial ),但这没有帮助。

此下拉菜单会干扰鼠标回调函数。我怎样才能去掉这个下拉菜单?

我使用命令 pip3 install opencv-contrib-python 安装了 OpenCV。我知道我缺少一些包,所以我尝试安装(但失败了 - '无法通过正则表达式找到任何包...')这些来自 this tutorial 的包:

sudo apt-get install python-devel numpy
sudo apt-get install gcc gcc-c++
sudo apt-get install gtk2-devel
sudo apt-get install ffmpeg-devel
sudo apt-get install gstreamer-plugins-base-devel

最佳答案

在 Python 中,您可以将 cv2.WINDOW_GUI_NORMAL 标志传递给 namedWindow() 以禁用下拉列表(仅当您有 Qt 后端时才支持该标志):

cv2.namedWindow("window_name", cv2.WINDOW_GUI_NORMAL)

然后调用

cv2.imshow("window_name", img)

namedWindow 函数文档的链接是 here .

关于python - 为什么右键单击会在我的 OpenCV imshow() 窗口中打开下拉菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56623487/

相关文章:

Matlab imshow 一个灰度矩阵

Python:根据条件对字典中的值求和

python - 毫秒级精确 python 计时器

python打字模块: Mixin

variables - OpenCV-跟踪栏的变量值范围

Python - 在 z 平面上切片

python - 查找多边形点的二维数组中最近的点

python - 属性错误 : 'module' object has no attribute 'BOWImgDescriptorExtractor' in Opencv python

opencv - SolvePnP - 如何使用它?

python - 使用 imshow 绘制一行又一行