parent
979ffb224d
commit
989dd3a43c
@ -1,2 +1,47 @@
|
|||||||
# Test
|
import cv2
|
||||||
|
import numpy as np
|
||||||
|
import os
|
||||||
|
|
||||||
|
def capture_images_from_video(video_path, save_dir, frame_interval=30):
|
||||||
|
cap = cv2.VideoCapture(video_path)
|
||||||
|
frame_count = 0
|
||||||
|
while cap.isOpened():
|
||||||
|
ret, frame = cap.read()
|
||||||
|
if not ret:
|
||||||
|
break
|
||||||
|
if frame_count % frame_interval == 0:
|
||||||
|
file_path = os.path.join(save_dir, f'frame_{frame_count}.jpg')
|
||||||
|
cv2.imwrite(file_path, frame)
|
||||||
|
frame_count += 1
|
||||||
|
cap.release()
|
||||||
|
|
||||||
|
def augment_image(image):
|
||||||
|
# 图像旋转
|
||||||
|
rows, cols, _ = image.shape
|
||||||
|
rotation_matrix = cv2.getRotationMatrix2D((cols/2, rows/2), 10, 1)
|
||||||
|
image = cv2.warpAffine(image, rotation_matrix, (cols, rows))
|
||||||
|
# 图像翻转
|
||||||
|
image = cv2.flip(image, 1)
|
||||||
|
return image
|
||||||
|
|
||||||
|
def preprocess_image(image_path):
|
||||||
|
# 读取图像
|
||||||
|
image = cv2.imread(image_path)
|
||||||
|
# 图像缩放
|
||||||
|
image = cv2.resize(image, (640, 640))
|
||||||
|
# 图像归一化
|
||||||
|
image = image / 255.0
|
||||||
|
# 去噪处理(例如高斯模糊)
|
||||||
|
image = cv2.GaussianBlur(image, (5, 5), 0)
|
||||||
|
# 图像增强
|
||||||
|
image = augment_image(image)
|
||||||
|
return image
|
||||||
|
|
||||||
|
# 示例
|
||||||
|
video_path = 'path/to/video.mp4'
|
||||||
|
save_dir = 'path/to/save/images'
|
||||||
|
capture_images_from_video(video_path, save_dir)
|
||||||
|
|
||||||
|
image_path = 'path/to/traffic_sign_image.jpg'
|
||||||
|
preprocessed_image = preprocess_image(image_path)
|
||||||
|
|
||||||
|
Loading…
Reference in new issue