Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import cv2
- import numpy as np
- def extract_features(video_path):
- """Extract features from the video using OpenCV"""
- cap = cv2.VideoCapture(video_path)
- features = []
- while True:
- ret, frame = cap.read()
- if not ret:
- break
- gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
- features.append(cv2.calcHist([gray], [0], None, [256], [0, 256]))
- cap.release()
- return np.array(features).flatten()
- def compare_videos(video1_path, video2_path):
- """Compare the features of two videos and return a similarity score"""
- features1 = extract_features(video1_path)
- features2 = extract_features(video2_path)
- return cv2.compareHist(features1, features2, cv2.HISTCMP_CORREL)
- def search_duplicates(path):
- """Search for duplicate videos in the given path"""
- duplicates = []
- processed_videos = []
- for root, dirs, files in os.walk(path):
- for filename in files:
- file_path = os.path.join(root, filename)
- for processed_video in processed_videos:
- score = compare_videos(file_path, processed_video)
- if score > 0.95:
- # Found a duplicate video
- duplicates.append((file_path, processed_video))
- processed_videos.append(file_path)
- return duplicates
- # Example usage
- duplicates = search_duplicates("/path/to/local/storage")
- for duplicate in duplicates:
- print("Duplicate found: {} and {}".format(*duplicate))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement