cv2.putText(frame, 'Angle: {:.2f}'.format(angle), (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2) cv2.putText(frame, 'Deviation: {:.2f}'.format(deviation), (10, 70), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)
时间: 2023-12-09 15:05:35 浏览: 128
这段代码使用 OpenCV 库中的 putText() 函数在视频帧上添加文字信息。第一个参数是视频帧,第二个参数是要显示的文本信息,第三个参数是文本的位置,第四个参数是字体类型,第五个参数是字体大小,第六个参数是字体的颜色,最后一个参数是字体的线条粗细程度。其中,'Angle: {:.2f}'.format(angle) 和 'Deviation: {:.2f}'.format(deviation) 分别是要显示的角度和偏差信息。
相关问题
cv2.puttext函数
cv2.putText函数是OpenCV中用来在图像上绘制文字的函数。它可以在指定的坐标位置绘制指定的文本字符串,还可以设置字体、字号、颜色、线型等参数。其函数原型为:
cv2.putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])
其中,img是输入的图像矩阵;text是要绘制的文本字符串;org是文本字符串的起始坐标;fontFace是字体类型;fontScale是字体大小;color是文本颜色;thickness是文本线条宽度;lineType是线条类型;bottomLeftOrigin是布尔值,用于控制文本起始坐标的位置。
例如,要在图像的左上角绘制一个白色的"Hello World"字符串,可以使用以下代码:
```
import cv2
img = cv2.imread('image.jpg')
org = (10, 50)
font = cv2.FONT_HERSHEY_SIMPLEX
fontScale = 1
color = (255, 255, 255)
thickness = 2
cv2.putText(img, 'Hello World', org, font, fontScale, color, thickness)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
执行这段代码后,就可以在图像的左上角看到一个白色的"Hello World"字符串。
if ear < eye_ar_thresh: counter += 1 if counter >= eye_ar_consec_frames: cv2.putText(frame, "Fatigue Detected!", (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) if mar > mouth_ar_thresh: counter = counter cv2.putText(frame, "Yawning detected!", (10, 90), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) else: counter = 0改进以上代码使得可以同时显示“Fatigue Detected"和"Yawning detectected"”
可以将两个判断条件合并到一起,如下所示:
```
if ear < eye_ar_thresh:
counter += 1
if counter >= eye_ar_consec_frames:
cv2.putText(frame, "Fatigue Detected!", (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2)
if mar > mouth_ar_thresh:
cv2.putText(frame, "Yawning detected!", (10, 90), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2)
else:
counter = 0
```
这样,如果眼睛和嘴巴都符合条件,就会同时在画面上显示“Fatigue Detected"和"Yawning detectected"。如果只有一个符合条件,就只会显示相应的提示。如果都不符合条件,就不会有任何提示。
阅读全文