我正在做一个项目,在这个项目中我必须使用鼠标作为画笔。我使用了cv2.setMouseCallback()
函数,但它返回了以下错误。下面是我的代码的一部分
import cv2
import numpy as np
# mouse callback function
def draw_circle(event,x,y,flags,param):
if event == cv2.EVENT_LBUTTONDBLCLK:
cv2.circle(img,(x,y),100,(255,0,0),-1)
# Create a black image, a window and bind the function to window
img = np.zeros((512,512,3), np.uint8)
cv2.namedWindow('image')
cv2.setMouseCallback('image',draw_circle)
while(1):
cv2.imshow('image',img)
if cv2.waitKey(20) & 0xFF == 27:
break
cv2.destroyAllWindows()
当我运行它时,它返回了以下错误: error Traceback
(most recent call last)
<ipython-input-1-640e54baca5f> in <module>
10 img = np.zeros((512,512,3), np.uint8)
11 cv2.namedWindow('image')
---> 12 cv2.setMouseCallback('image',draw_circle)
13
14 while(1):
error: OpenCV(4.3.0) /io/opencv/modules/highgui/src/window_QT.cpp:717: error: (-27:Null pointer) NULL window handler in function 'cvSetMouseCallback'
我的python版本- 3.8操作系统- ubuntu 20
发布于 2020-07-10 00:23:34
错误已解决,我删除了以前安装的OpenCV
(使用pip pip install opencv-python
安装),并使用以下命令重新安装
sudo apt install libopencv-dev python3-opencv
发布于 2020-09-02 23:25:13
对我来说,我也使用过pip3安装。刚刚创建了一个新的虚拟环境,并安装了opencv-python和opencv-contrib-python。
https://stackoverflow.com/questions/62801244
复制相似问题