【问题标题】:How to handle "drag and drop a file" event to cv2.imshow() window如何处理“拖放文件”事件到 cv2.imshow() 窗口
【发布时间】:2021-09-20 07:07:38
【问题描述】:

我想将图像文件拖放到cv2.imshow() 窗口并获取文件名路径。

没有名为拖放的事件,我需要一些帮助。

在我的项目中,我删除了背景图片,我想用任何图片更改背景。

我做了最难的部分(去除背景),但我不知道如何在 OpenCV python 中处理拖放文件事件。

def mouse_events(event, x,y, flags,param):
    if event == cv2.EVENT_??: # ?? drag/drop a file event
        # return the filename

while True:
   ...
   cv2.setMouseCallback(windowName, mouse_events)
   ...

提前致谢

【问题讨论】:

  • 不能。 OpenCV 是一个用于计算机视觉的库,对于显示图像具有一定的便利性。你想要一个用于 GUI 编程的库
  • 如您所见,imshow() 代码中没有内置此类事件。也没有任何类型的剪贴板处理,所以它根本行不通。也许你可以在控制台上启动 stdio input() 函数,然后把你的文件放在那里,而不是在 gui 窗口上

标签: python image opencv opencv-python


【解决方案1】:

正如@Christoph Rackwitz 指出的那样,您不能单独使用 OpenCV 来做到这一点。您必须使用一些 GUI 编程接口,例如 PyQt5pyside

This question 演示了文件资源管理器的拖放功能。

看看这个tutorial 与 OpenCV 集成

【讨论】:

  • 感谢您的回答....最后,我用Tkinter 替换了imshow(),然后我用它处理了DnD。
猜你喜欢
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 2020-01-16
  • 2015-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-03
相关资源
最近更新 更多