如果我想在视频的每一帧的左下角 (x1,y1) 和右上角 (x2,y2) 添加黑色填充矩形,我该怎么做?
与 @muhammad-safwan 所说的类似,但这也应该可以帮助您将其放入视频的每一帧中:
您尚未向我们提供任何代码,但我假设它看起来与此类似(其中
cap
是您的视频捕获源):
while True:
ret, image = cap.read()
image = cv2.resize(image, (500, 500))
# this is the part to add to your code
cv2.rectangle(image, (0, 0), (200, 200), (0, 0, 0), -1)
cv2.imshow("My Video", image)
if cv2.waitKey(1) & 0xFF == ord('q'):
cv2.destroyAllWindows()
使用
cv2.rectangle(image, (0, 0), (200, 200), (0, 0, 0), -1)
将矩形添加到视频中的每个帧(使用的变量是图像)。
这是矩形的通用方法
image = cv2.rectangle(image, start_point, end_point, color, thickness)
在我们的例子中使用厚度作为
-1
来填充矩形
image = cv2.rectangle(image, (x1,y1), (x2,y2), (0,0,0), -1)
很多人问这个是为了实时视频捕捉,所以我找不到具体的答案。希望这有帮助。
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
# running the loop
while True:
# extracting the frames
ret, img = cap.read()
# converting to gray-scale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Using cv2.rectangle() method
# Draw a rectangle with blue line borders of thickness of 2 px
image = cv2.rectangle(img, pt1=(2,2), pt2=(300,300),color=(200,200,200), thickness=20)
# Displaying the image
cv2.imshow('window_name', img)
# displaying the video
# exiting the loop
key = cv2.waitKey(1)
if key == ord("q"):
break
cap.release()
cv2.destroyAllWindows()