Irregular Error - python cv2.imshow NameError: name "definition" is not defined
Irregular Error - python cv2.imshow NameError: name "definition" is not defined
我正在通过 cv2.imshow
接线员 运行 录制视频。大多数时候,当我在命令行中调用它时,代码 运行s,但偶尔我会得到以下 NameError:
NameError: name 'masked' is not defined
然而,'masked'在cv2.imshow中被调用之前是绝对定义的:
image = frame.array
miniframe = image
masked = cv2.bitwise_and(image, image, mask=circle_img)
cv2.imshow("frame", masked)
以这种方式定义 'masked' 时会发生同样的事情:
image = frame.array
miniframe = image
M = np.float32([[1,0,x+w/2],[0,1,y+h/2]])
masked = cv2.warpAffine(image, M, (x+w, y+h))
cv2.imshow("frame", masked)
当 print masked
插入到 cv2.imshow
行上方时,它会导致数组打印为数字 - 当代码运行时。当它不工作时,它会导致 NameError traceback 指向 print masked
.
需要说明的是,在任何一种情况下,NameError 似乎都是随机发生的,无需修改代码。所以,我可以 运行 它一次或 20 次就好了,但是它会突然在命令行中不起作用,并回溯到 cv2.imshow
行。有时,从以前的版本中复制粘贴相同的代码块可以让它再次运行,但经过几次未修改的尝试后,又回到 NameError
。
我已经阅读了 Python NameError when var IS most definitely defined,并使用 cat -A filename.py
来检查不可见的控制字符。在取消和重新缩进之后,它又工作了 2 次,然后又回到了 NameError。
如有任何帮助,我们将不胜感激!
找到解决方案。我的问题与 'masked' 中未满足的条件有关。这是一个依赖人脸检测的程序,但对于任何必须满足的随机、持续的条件,我的问题都是一样的。
故障排除步骤包括:
- 回顾我的回溯
- 通过在开始时将脸放在镜头前来测试 IRL,然后在开始时将手放在镜头上。这证实如果在启动时检测到人脸,程序将 运行,但如果没有人脸则不会。
为了解决这个问题,我对 cv2.imshow("frame", masked)
使用了 try/except 条件,导致代码如下所示:
image = frame.array
miniframe = image
M = np.float32([[1,0,x+w/2],[0,1,y+h/2]])
masked = cv2.warpAffine(image, M, (x+w, y+h))
try:
cv2.imshow("frame", masked)
except NameError:
cv2.imshow("frame", image)
我是一个 rank 新手,这真的教会了我测试和审查回溯的价值!
我正在通过 cv2.imshow
接线员 运行 录制视频。大多数时候,当我在命令行中调用它时,代码 运行s,但偶尔我会得到以下 NameError:
NameError: name 'masked' is not defined
然而,'masked'在cv2.imshow中被调用之前是绝对定义的:
image = frame.array
miniframe = image
masked = cv2.bitwise_and(image, image, mask=circle_img)
cv2.imshow("frame", masked)
以这种方式定义 'masked' 时会发生同样的事情:
image = frame.array
miniframe = image
M = np.float32([[1,0,x+w/2],[0,1,y+h/2]])
masked = cv2.warpAffine(image, M, (x+w, y+h))
cv2.imshow("frame", masked)
当 print masked
插入到 cv2.imshow
行上方时,它会导致数组打印为数字 - 当代码运行时。当它不工作时,它会导致 NameError traceback 指向 print masked
.
需要说明的是,在任何一种情况下,NameError 似乎都是随机发生的,无需修改代码。所以,我可以 运行 它一次或 20 次就好了,但是它会突然在命令行中不起作用,并回溯到 cv2.imshow
行。有时,从以前的版本中复制粘贴相同的代码块可以让它再次运行,但经过几次未修改的尝试后,又回到 NameError
。
我已经阅读了 Python NameError when var IS most definitely defined,并使用 cat -A filename.py
来检查不可见的控制字符。在取消和重新缩进之后,它又工作了 2 次,然后又回到了 NameError。
如有任何帮助,我们将不胜感激!
找到解决方案。我的问题与 'masked' 中未满足的条件有关。这是一个依赖人脸检测的程序,但对于任何必须满足的随机、持续的条件,我的问题都是一样的。
故障排除步骤包括: - 回顾我的回溯 - 通过在开始时将脸放在镜头前来测试 IRL,然后在开始时将手放在镜头上。这证实如果在启动时检测到人脸,程序将 运行,但如果没有人脸则不会。
为了解决这个问题,我对 cv2.imshow("frame", masked)
使用了 try/except 条件,导致代码如下所示:
image = frame.array
miniframe = image
M = np.float32([[1,0,x+w/2],[0,1,y+h/2]])
masked = cv2.warpAffine(image, M, (x+w, y+h))
try:
cv2.imshow("frame", masked)
except NameError:
cv2.imshow("frame", image)
我是一个 rank 新手,这真的教会了我测试和审查回溯的价值!