2

我正在使用 OpenCV 中的 CreateTrackBar 函数来创建轨迹栏。但我不希望在更改时发生任何回调。我将在一个单独的循环中执行此操作,在该循环中使用 cv2.getTrackbarPos() 获取轨迹栏值。但是,如果我没有将可调用函数作为 CreateTrackBar() 的参数,Python 会返回错误。OpenCV的文档说:

如果回调是 NULL 指针,则不调用回调,而只更新值。

我猜这是针对 C++ 实现的。Python中是否有类似的空指针或空或无函数?我知道我可以做一个什么都不做的函数。只是看看是否有更优雅的方式来做到这一点。我尝试了 None 并得到 None 不可调用的错误。

import cv2
cv2.namedWindow("Window")
cv2.createTrackbar("Value", "Window", 100, 255, None)

#Do stuff here in a while loop

cv2.waitKey(0)
cv2.destroyAllWindows()
4

1 回答 1

1

我认为您可能只需要定义一个快速函数。您可以使用匿名 lambda 并避免显式定义要返回的函数None

cv2.createTrackbar("Value", "Window", 100, 255, lambda x:x)
于 2020-05-15T02:50:38.790 回答