2017-03-08 226 views
0

我正在學習Python的opencv,我已經使用opencv完美地運行了我的視頻,但是我想在視頻上製作邊框。這是我到目前爲止所嘗試的,但它沒有奏效。如何使用opencv和python在視頻流上製作邊框?

import cv2 
import numpy as np 
cam=cv2.VideoCapture(1) 
waitTime=50 
while (1): 


    ret,frame=cam.read() 
#cv2.copyMakeBorder(frame,1000,1000,1000,1000,cv2.BORDER_CONSTANT,value=[0,255,255]) 
    cv2.imshow("frame",frame) 
    cv2.copyMakeBorder(frame,1000,1000,1000,1000,cv2.BORDER_CONSTANT,value=[0,200,200]) 
    #cv2.setMouseCallback('frame',draw) 
    if cv2.waitKey(waitTime) & 0xFF==ord('q'): 
      break 
cam.release() 
cv2.destroyAllWindows() 

回答

0

您需要copyMakeBorder後打電話到imshow,並把圖像與邊境在一個變量:

frame = cv2.copyMakeBorder(frame,1000,1000,1000,1000,cv2.BORDER_CONSTANT,value=[0,200,200]) 
cv2.imshow("frame",frame) 
0

問題是您使邊框太大(1000),並且您沒有指定複製到哪個圖像。它應該是這樣的:

import cv2 
import numpy as np 
cam=cv2.VideoCapture(1) 
waitTime=50 

while (1): 
    ret,frame=cam.read() 
    cv2.imshow("frame",frame) 
    borderedFrame = cv2.copyMakeBorder(frame,10,10,10,10,cv2.BORDER_CONSTANT,value=[0,200,200]) 
    cv2.imshow("bordered frame", borderedFrame) 
    if cv2.waitKey(waitTime) & 0xFF==ord('q'): 
     break 

cam.release() 
cv2.destroyAllWindows() 
相關問題