在之前我们捕获视频流图像的尺寸是默认,我们也可以通过参数配置捕捉视频流的大小。
import cv2
cap = cv2.VideoCapture(0)
print(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
print(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
while(cap.isOpened()):
ret, frame = cap.read()
if ret == True:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
cap.release()
cv2.destroyAllWindows()
可以通过cv2 常量设置视频流的宽度和高度,cv2.CAP_PROP_FRAME_WIDTH 对应位整型的 3 而 CAP_PROP_FRAME_HEIGHT 对应整型的 4,所以也可以通过 3, 4 来为视频流指定高度。
cap.set(cv2.CAP_PROP_FRAME_WIDTH,640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT,480)
在视频流添加文字(时间)
import cv2
cap = cv2.VideoCapture(0)
# print(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
# print(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
cap.set(cv2.CAP_PROP_FRAME_WIDTH,640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT,480)
while(cap.isOpened()):
ret, frame = cap.read()
if ret == True:
font = cv2.FONT_HERSHEY_SIMPLEX
text = 'Width: ' + str(cap.get(3)) + ' Height: ' + str(cap.get(4))
frame = cv2.putText(frame,text,(10,50),font,1,(0,255,255),2,cv2.LINE_AA)
# gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
cap.release()
cv2.destroyAllWindows()
font 用于指定显示文字的字体,我们用 putText 方法为图片添加文字,第一个参数是图片资源,第二参数是文字的位置,接下来参数是控制文字大小,通过一个比例值(缩放值来控制文字大小)这里指定是 1,(0,255,255)指定文字颜色,随后参数 2 是线的宽度,最后 LINE_AA 是线条的类型。
图
datet = str(datetime.datetime.now())
frame = cv2.putText(frame,datet,(10,50),font,1,(0,255,255),2,cv2.LINE_AA)
# gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
图
opencv.jpeg
网友评论