OpenCV-Python人脸识别摄像头自动关闭及putText参数错误求助
人脸识别摄像头自动关闭并报错问题排查与解决
问题原因
从错误信息和代码片段可明确:cv2.putText()参数传递出错,导致参数类型不匹配,进而引发程序终止、摄像头窗口自动关闭。
调用cv2.putText()时,你将字体缩放参数fontScale误写为0,8(逗号分隔),这相当于多传了一个参数,直接打乱了后续参数的顺序:
- 原本
fontScale应为单个浮点值(比如0.8),却被拆成0和8两个独立参数 - 原本对应
thickness(线条粗细)的位置被错误传入非预期值,即便后续改成int(2),参数顺序的错乱依然让OpenCV无法识别正确的thickness参数类型,最终触发"Argument 'thickness' is required to be an integer"报错。
解决方法
修正cv2.putText()的参数,将0,8改为0.8,确保参数顺序和类型完全符合OpenCV要求:
修改前代码:
cv2.putText(frame, name,(left + 6,bottom - 6), cv2.FONT_HERSHEY_DUPLEX, 0,8,(255,255,255), 2)
修改后代码:
cv2.putText(frame, name,(left + 6,bottom - 6), cv2.FONT_HERSHEY_DUPLEX, 0.8,(255,255,255), 2)
cv2.putText()的正确参数顺序参考:
frame: 绘制文本的目标图像name: 要显示的文本内容(left + 6,bottom - 6): 文本起始坐标cv2.FONT_HERSHEY_DUPLEX: 字体类型0.8: 字体缩放比例(浮点型)(255,255,255): 文本颜色2: 文本线条粗细(整型)
修正后重新运行代码,摄像头窗口将正常显示人脸识别结果,不会再因参数错误自动关闭。
内容的提问来源于stack exchange,提问作者Rukhsar
相关产品推荐
相关产品推荐

