Tạo video từ hình ảnh bằng OpenCV
Hướng dẫn chi tiết cách tạo video từ các hình ảnh bằng Python và thư viện OpenCV. Bài viết bao gồm mã nguồn và giải thích từng dòng mã.
Đoạn mã Python này sử dụng thư viện OpenCV để tạo video từ các hình ảnh. Bằng cách đọc các hình ảnh từ thư mục, đoạn mã sẽ kết hợp chúng lại thành một video với tốc độ khung hình được chỉ định.
import cv2
import os
# Đường dẫn đến thư mục chứa các hình ảnh
image_folder = 'path_to_images'
# Tên file video đầu ra
video_name = 'output_video.avi'
# Lấy danh sách các file hình ảnh trong thư mục
images = [img for img in os.listdir(image_folder) if img.endswith(".jpg")]
images.sort() # Sắp xếp các hình ảnh theo thứ tự
# Đọc hình ảnh đầu tiên để lấy kích thước khung hình
frame = cv2.imread(os.path.join(image_folder, images[0]))
height, width, layers = frame.shape
# Định nghĩa codec và tạo đối tượng VideoWriter
video = cv2.VideoWriter(video_name, cv2.VideoWriter_fourcc(*'DIVX'), 1, (width, height))
# Lặp qua tất cả các hình ảnh và thêm vào video
for image in images:
video.write(cv2.imread(os.path.join(image_folder, image)))
# Giải phóng đối tượng VideoWriter
video.release()
Giải thích từng dòng mã
- Import các thư viện cần thiết:
cv2
để xử lý video vàos
để làm việc với hệ thống file. - Đường dẫn đến thư mục chứa các hình ảnh: Xác định đường dẫn đến thư mục chứa các hình ảnh.
- Tên file video đầu ra: Đặt tên cho file video đầu ra.
- Lấy danh sách các file hình ảnh trong thư mục: Sử dụng
os.listdir
để lấy danh sách các file hình ảnh và lọc các file có đuôi.jpg
. - Sắp xếp các hình ảnh theo thứ tự: Sử dụng
sort()
để sắp xếp các hình ảnh theo thứ tự. - Đọc hình ảnh đầu tiên để lấy kích thước khung hình: Sử dụng
cv2.imread
để đọc hình ảnh đầu tiên và lấy kích thước khung hình. - Định nghĩa codec và tạo đối tượng VideoWriter: Sử dụng
cv2.VideoWriter
để định nghĩa codec và tạo đối tượng VideoWriter. - Lặp qua tất cả các hình ảnh và thêm vào video: Sử dụng vòng lặp
for
để lặp qua tất cả các hình ảnh và thêm vào video. - Giải phóng đối tượng VideoWriter: Sử dụng
release()
để giải phóng đối tượng VideoWriter.
Yêu cầu hệ thống
- Phiên bản Python: 3.6 trở lên
Để cài đặt các thư viện cần thiết, bạn có thể sử dụng lệnh sau trong terminal hoặc command prompt:
pip install opencv-python
Lời khuyên
- Kiểm tra đường dẫn: Đảm bảo rằng đường dẫn đến thư mục chứa hình ảnh là chính xác.
- Định dạng hình ảnh: Đảm bảo tất cả các hình ảnh có cùng định dạng và kích thước để tránh lỗi khi tạo video.
- Thử nghiệm với tốc độ khung hình: Bạn có thể thay đổi giá trị tốc độ khung hình (fps) để tạo ra video với tốc độ khác nhau.