背景:从视频中获取图片,进行数据标注,然后进行训练;
指定文件夹读取视频然后产生相应图片工具
# -*- coding: utf-8 -*-
import os
import cv2
import os.path
import glob
source_path = r'G:\1'
destion_path = r'G:\1'
files = sorted(glob.glob(os.path.join(source_path, "*.avi")))
c=0
for path_video in files:
vc = cv2.VideoCapture(path_video)
(filepath, tempfilename) = os.path.split(path_video)
(filename, extension) = os.path.splitext(tempfilename)
dir_filename=os.path.join(filepath,filename)
if not os.path.exists(dir_filename):
os.mkdir(dir_filename)
rval = vc.isOpened()
while rval:
c = c + 1
rval, frame = vc.read()
if rval and c%10==0:
cv2.imwrite(os.path.join(dir_filename ,".".join([filename +str(c/10) , 'jpg'])), frame)
elif rval:
pass
else:
break
vc.release()
图片进行180°翻转;
from PIL import Image
import os
import os.path
rootdir = r'picture'
for parent, dirnames, filenames in os.walk(rootdir):
for filename in filenames:
print('parent is :' + parent)
print('filename is :' + filename)
currentPath = os.path.join(parent, filename)
print('the fulll name of the file is :' + currentPath)
im = Image.open(currentPath)
out = im.transpose(Image.ROTATE_180)
newname=filename
out.save(rootdir+'/'+newname)
from PIL import Image
import os
fin = 'picture'
fout = 'picture'
for file in os.listdir(fin):
file_fullname = fin + '/' +file
(filepath, tempfilename) = os.path.split(file_fullname)
(filename, extension) = os.path.splitext(tempfilename)
if extension=='.jpg':
img = Image.open(file_fullname)
a = [179, 296, 1119, 704]
box = (a)
roi = img.crop(box)
out_path = fout + '/' + file
roi.save(out_path)
# coding=utf-8
import os
import cv2
import glob
img_root = 'C:\\Users\\PHILIPS\\Desktop\\img\\img\\math\\glass\\cover'
fps = 22
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
videoWriter = cv2.VideoWriter('C:\\Users\\PHILIPS\\Desktop\\img\\img\\math\\glass\\saveVideo.avi',fourcc,fps,(1920,1080))#最后一个是保存图片的尺寸
alist=[]
for root, ds, fs in os.walk(img_root):
for item in fs:
alist.append(item)
dict={}
for i in range(0,len(alist)):
for j in range(0,len(alist)):
str=alist[j].split('_')
num=eval(str[-1].split('.')[0])
dict[num]= alist[j]
for i in sorted (dict) :
print(os.path.join(img_root,dict[i]))
frame = cv2.imread(os.path.join(img_root,dict[i]))
videoWriter.write(frame)
videoWriter.release()
from PIL import Image
import cv2
fps = 25
size=(1920, 1080)
img = Image.new("RGBA",size,(0,255,0))#RGBA的真色模式
img = img.convert("RGB")#jpg格式必须转换,单色和灰色不用
img.save("create.jpg")
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
videoWriter = cv2.VideoWriter('saveVideo.avi', fourcc, fps,size) # 最后一个是保存图片的尺寸
img=cv2.imread("create.jpg")
while True:
videoWriter.write(img)
print("create video")
videoWriter.release()