python - opencv鼠标回调没有被触发
问题描述
看看这个函数:
def showImage(im):
def printColor(event, x, y, flag, params):
if event == cv2.EVENT_LBUTTONDOWN:
print(im[x,y])
sys.exit(1)
tag = "image"
cv2.setMouseCallback(tag, printColor)
cv2.imshow(tag, im)
while True:
if 'q' == chr(cv2.waitKey() & 255):
cv2.destroyAllWindows()
break
它应该在单击时显示图像并在鼠标位置打印像素。但由于某种原因,回调没有被触发。我怎样才能让这个代码工作?
解决方案
为了setMouseCallback
工作,您需要先创建窗口对象。
这可以通过imshow
在设置鼠标回调之前调用来完成,或者通过使用cv2.namedWindow()创建它
推荐阅读
- javascript - 当输入数为 10 个字符时的 js 活动按钮
- angular - Angular 10 错误 - 错误 TS2314:通用类型 'ɵɵFactoryDef' 需要 1 个类型参数
- python - Python: Add an entry in a file and assign an ID automatically
- javascript - 管理多个 npm 包的全局别名
- flask - 如何处理 Flask 中同时包含动态和静态组件的路由?
- r - ggplot 散点图,随着值变小而变大的点。一定范围内的值都应该具有相同的大小
- php - 针对特定产品类别的 WooCommerce 自定义结帐页面重定向
- php - 如何在 Laravel 中使用 php 包?
- java - Android:使用画布绘制时如何观察视图的布局约束?
- ssh - 在 Coda 中使用 SSH ProxyJump