使用python opencv写入图像的实时时钟



我正在尝试在图像上写入实时时钟。我有简单的运行代码来使用 while 循环和 cv2.putText(( 命令。但是这段代码的问题在于我正在覆盖时间值的数字。谁能帮我同样的忙。提前感谢帮助。

import cv2
import time
I = cv2.imread('image.png')
I = cv2.resize(I,(640,480))
I1 = I.copy()
font1 = cv2.FONT_HERSHEY_SIMPLEX
while 1:
     I1 = I
     t = time.strftime('%H:%M:%S')
     I1 = cv2.putText(I1,t,(0,480),font1,2,(255,255,255),5)
     cv2.imshow('frame',I1)
     k = cv2.waitKey(10)
     if k == 27:
          break
cv2.destroyAllWindows()

OpenCV cv2.putText()就地更改输入图像,为了防止这种行为,您可以尝试将输入图像作为copy()传递,以便更改不会反映在原始图像本身中。

while 1:
     I1 = I
     t = time.strftime('%H:%M:%S')
     I1 = cv2.putText(I1.copy(),t,(50,50),font1,2,(255,0, 0),5)
     cv2.imshow('frame',I1)
     k = cv2.waitKey(10)
     if k == 27:
          break 

但是,脚本中有一些冗余步骤,可以在不影响输出的情况下剥离这些步骤,如下所示:

import cv2
import time
I = cv2.imread('image.png')
font1 = cv2.FONT_HERSHEY_SIMPLEX
while 1:
     t = time.strftime('%H:%M:%S')
     I1 = cv2.putText(I.copy(),t,(50,50),font1,2,(255,0, 0),5)
     cv2.imshow('frame',I1)
     k = cv2.waitKey(10)
     if k == 27:
          break
cv2.destroyAllWindows()

最新更新