背景:從視訊中擷取圖檔,進行資料标注,然後進行訓練;
指定檔案夾讀取視訊然後産生相應圖檔工具
# -*- 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()