使用python opencv在图象写的实时时钟

时间:2017-06-18 05:45:49

标签: 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()

1 个答案:

答案 0 :(得分:0)

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()