python - 如何使用 open cv 在窗口中打印消息
问题描述
我正在研究人脸检测用例,并希望在框架中未检测到人脸时打印一条消息,并在检测到人脸时绘制边界框。我正在使用 open-cv 到目前为止这是我的代码,请让我知道需要进行哪些更改。
import cv2
cascPath = 'haarcascade_frontalface_dataset.xml'
faceCascade = cv2.CascadeClassifier(cascPath)
video_capture = cv2.VideoCapture(0)
while True :
_, frame = video_capture.read(0)
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# cv2.imshow("face detection", frame)
faces = faceCascade.detectMultiScale(
gray,
scaleFactor=1.1,
minNeighbors=5,
minSize=(30, 30),
flags=cv2.CASCADE_SCALE_IMAGE
)
# Draw a rectangle around the faces
for (x, y, w, h) in faces:
if w == 0:
cv2.putText(frame,'No face',(0,130), font, 1, (200,255,155))
else:
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
# Display the resulting frame in browser
cv2.imshow('Video', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything is done, release the capture
video_capture.release()
cv2.destroyAllWindows()
解决方案
我想出了解决办法,如果你想看,可以通过它,只需在for循环之前添加这个if语句,如果没有检测到人脸,它会在窗口中写入no face
if len(faces) == 0:
cv2.putText(frame,'No face',(0,130), 4,1, (200,255,155))
推荐阅读
- twitter-bootstrap - 在 Bootstrap 中最小化行宽
- kubernetes - 使用 Minikube kubectl 创建部署时出现未知图像标志
- angular - 在模板驱动表单中禁用 mat-form-field
- r - 使用 R 中的过滤器函数过滤具有多个变量的多个条件
- python - 使用 .join() 将列表值转换为在 python 中面临错误的字符串
- discord - Discord:通过 ID 获取频道返回 undefined / null
- c++ - 在类的 qlist 中搜索字符串
- flutter - 溢出属性不会剪辑文本小部件中的内容
- json - 如何在python中将字节转换为json
- javascript - 如何制作一个可以决定使用传递的数据运行哪个函数的程序?