我正在试验OpenCV和面部识别。它一直没有任何问题,直到最近它停止退出我的脚本,我被迫关闭commandprompt。经过一些调试,我找到了这条线的罪魁祸首。如果我删除这一行,程序将正确退出,但我没有检测人脸的选项:(
faces = FACE_CLASSIFIER.detectMultiScale(gray, scaleFactor=SCALE_FACTOR, minNeighbors=MIN_NEIGHBORS)
我也在销毁windows命令之前和之后尝试过使用此代码,但没有效果
for i in range(1, 5):
cv2.waitKey(1)
我在opencv文档中找到了这些信息
When the cascade is not needed anymore, release it using cvReleaseHaarClassifierCascade(&cascade).
https://docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html
我认为这可能是一个合适的解决方案,但我还没有找到一个方法,可以让我做到这一点
样本代码
我从命令行开始使用
python face.py
脸蛋
import cv2
FACE_CLASSIFIER = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
SCALE_FACTOR = 1.5
MIN_NEIGHBORS = 5
video_capture = cv2.VideoCapture(0)
while True:
# Capture frame-by-frame
ret, frame = video_capture.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# If this line is removed the program exits properly
faces = FACE_CLASSIFIER.detectMultiScale(gray, scaleFactor=SCALE_FACTOR, minNeighbors=MIN_NEIGHBORS)
cv2.imshow('Video', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
video_capture.release()
cv2.destroyAllWindows()
系统信息
Microsoft Windows [Version 10.0.18363.836]
pip3 list
Package Version
--------------------- --------
numpy 1.18.5
opencv-contrib-python 3.4.9.33
pip 20.1.1
setuptools 41.2.0
python --version
Python 3.7.7
问题似乎与opencv contrib python包有关。我尝试了以下软件包,它们都很有效
这些版本都引入了此警告,但仍然有效
这些版本都引入了此警告,但仍然有效
这些版本无法以干净的退出方式运行应用程序
相关问题 更多 >
编程相关推荐