我在试着做人脸检测
import cv2
import sys
faceCascade = cv2.CascadeClassifier(r"haarcascade_frontalface_default.xml")
video_capture = cv2.VideoCapture(0)
while True:
ret, frame = video_capture.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(
gray,
scaleFactor=1.1,
minNeighbors=5,
minSize=(30, 30),
# cv2.CASCADE_SCALE_IMAGE
flags=cv2.CASCADE_SCALE_IMAGE
)
for (x, y, w, h) in faces:
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
cv2.imshow('Video', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
video_capture.release()
cv2.destroyAllWindows()但每次我运行这个程序时,我都会得到这样的错误:
cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-pz4stnv8\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'而且即使我显示隐藏的项目,用户中也没有appveyor文件夹,所以我无法访问它。
发布于 2020-11-03 06:01:35
不能保证video_capture.read()会返回有效的帧。
ret为True或False取决于帧是否被成功读取。您应该在尝试进一步处理帧之前检查此值--例如,通过添加:
if not ret:
continue错误消息中的路径是用于构建OpenCV的机器上的源代码的路径,因此不一定是您的机器上的真实路径。这没什么好担心的。
发布于 2020-11-03 06:07:50
谢谢,但现在ı得到了这个错误:
cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build- zsozjuva\opencv\modules\objdetect\src\cascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'
[ WARN:0] global C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-zsozjuva\opencv\modules\videoio\src\cap_msmf.cpp (435) `anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callbackhttps://stackoverflow.com/questions/64653889
复制相似问题