我正在用python
opencv
做一些与视频相关的工作.我也在计算FPS,并将其显示在CV2窗口的左上角.现在,我不想在左上角显示它,而是想在窗口标题上显示它.代码如下:
import cv2
import datetime
import imutils
def GetCoord(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
print("X: {} | Y: {}".format(x, y))
winName = "My Project"
cv2.namedWindow(winName)
cv2.setMouseCallback(winName, GetCoord)
cap = cv2.VideoCapture(0)
fps_start_time = datetime.datetime.now()
fps = 0
total_frames = 0
while True:
ret, frame = cap.read()
frame = imutils.resize(frame, width=800)
total_frames = total_frames + 1
fps_end_time = datetime.datetime.now()
time_diff = fps_end_time - fps_start_time
if time_diff.seconds == 0:
fps = 0.0
else:
fps = (total_frames / time_diff.seconds)
fps_text = "FPS: {:.2f}".format(fps)
cv2.putText(frame, fps_text, (5, 30), cv2.FONT_HERSHEY_COMPLEX_SMALL, 1, (0, 0, 255), 1)
cv2.imshow(winName, frame)
key = cv2.waitKey(1)
if key == ord('q'):
break
cv2.destroyAllWindows()
我不想在左上角显示它,而是想做如下操作:
cv2.imshow(winName + " FPS: {}".format(fps_text), frame)
但这样做,应用程序的运行非常奇怪,并不断打开一个新的窗口.有没有办法实现这一点?