gpt4 book ai didi

图像迭代列表中的 Python Opencv 鼠标事件

转载 作者:太空宇宙 更新时间:2023-11-03 21:32:08 26 4
gpt4 key购买 nike

我在图像列表(目录中的图像)上反复执行操作,并且需要在单击每个单独的图像时捕获鼠标位置。这是行不通的。我有 2 个选项:省略 cv.namedWindow()/cv.setMouseCallback() 的使用,或者弄清楚如何在目录中迭代图像的“for 循环”中/共生地使用它们。目前,我的代码是这样的,一个黑色窗口出现在我感兴趣的图像旁边。仅捕获该黑色窗口上的鼠标事件,但我希望捕获显示图像的窗口的事件。

for image in images:
img = cv.imread(image)
cv.namedWindow("image")
cv.setMouseCallback("image", click)
...
cv.imshow('x',img)
k = cv.waitKey(0) & 0xFF
if k == 27:
cv.destroyAllWindows()

我已经在 for 循环内外尝试了 namedWindow 和 setMouseCallback 的所有组合,但均无效果。有人知道解决方案吗?谢谢。

最佳答案

您可以设置鼠标回调,然后处理它输出的任何内容。准确的说,你可以让它只在按下鼠标左键时调用一个函数,就像这样:

# Define the function to be called on mouse click
def on_click(event, x, y, flags, param):
# Check if the mouse was actually clicked
if event == cv2.EVENT_LBUTTONDOWN:
# Do something
cv2.destroyAllWindows()

# Show the image
cv2.imshow("image", img)

# Listen to mouse events
cv2.setMouseCallback("image", on_click)

# Wait for action
cv2.waitKey(0)

关于图像迭代列表中的 Python Opencv 鼠标事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50455033/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com