2017-06-18 48 views
0

我想在圖像上寫實時時鐘。我有使用while循環和cv2.putText()命令的簡單運行代碼。但是這個代碼的問題是我正在覆蓋時間值的數字。 任何人都可以幫助我。幫助提前感謝。實時時鐘寫在圖像上使用python opencv

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

回答

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() 
相關問題