【发布时间】:2021-01-07 21:03:58
【问题描述】:
我只是写了一个简单的代码来当我点击时画一个圆圈,但我只看到一个黑色的图像而不是我的圆圈
import cv2
import numpy as np
def draw_circle(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
cv2.circle(img,(x,y),100,(255,0,0),-1)
cv2.namedWindow(winname='my_drawing')
cv2.setMouseCallback('my_drawing', draw_circle)
img = np.zeros((512, 512, 3), np.int32)
while True:
cv2.imshow('my_drawing', img)
if cv2.waitKey(0) == 27:
break
cv2.destroyAllWindows()
有人可以帮我吗?我的 IDE 是 Pycharm
编辑:
我解决了这个问题,但我不知道为什么会这样。我将 np.int32 更改为 np.uint8 并更改了此功能:
def draw_circle(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
cv2.circle(img,(x,y),100,(255,0,0),-1)
cv2.imshow('my_drawing', img)
cv2.waitKey(0)
为什么我需要使用 .imshow() 2 次?为什么我需要使用 np.uint8?
【问题讨论】:
-
这是什么意思:“imshow() 2 次”?
-
您需要一个额外的
cv2.imshow()才能显示更新的图像。 -
@barny hummm okkk 就是这样。我以为我只需要一个,因为我在 jupyter 上看到了一些视频,它们只是在
.imshow()上使用