由于项目需求用灰度图像训练了一个目标检测的squeezeDet网络,把视频提取成为每一帧来进行测试。开始测试的时候没有注意直接用了彩色视频来进行测试,发现检测的一点都不准,然后就想把彩色视频装换成灰度视频试试,本想找个软件直接转换,结果找了半天没找到,那还是自己动手吧。代码很简单,下面直接贴代码。用灰度图测试效果就好了很多。
import numpy as np
import cv2
'''
这是一个将彩色视频装换成灰度视频的代码块
'''
# 捕获视频
cap = cv2.VideoCapture('C:/Users/Administrator/Desktop/video.mp4')
# 定义编解码器,创建VideoWriter 对象
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('C:/Users/Administrator/Desktop/output1.mp4',fourcc, 20.0, (1280,720),False)
#(写出的文件,??,帧率,(分辨率),是否彩色) 非彩色要把每一帧图像装换成灰度图
while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:
# frame = cv2.flip(frame,0) #可以进行视频反转
# write the flipped frame
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) #换换成灰度图
out.write(frame)
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
# Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()
网友评论