Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import cv2
- import numpy as np
- from sklearn.metrics.pairwise import cosine_similarity
- 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(features1, features2):
- """Compare the features of two videos and return a similarity score"""
- return cosine_similarity(features1.reshape(1, -1), features2.reshape(1, -1))[0][0]
- 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)
- features = extract_features(file_path)
- for processed_video in processed_videos:
- score = compare_videos(features, processed_video[1])
- if score > 0.95:
- # Found a duplicate video
- duplicates.append((file_path, processed_video[0]))
- processed_videos.append((file_path, features))
- return duplicates
- # Example usage
- duplicates = search_duplicates("/path/to/local/storage")
- for duplicate in duplicates:
- print("Duplicate found: {} and {}".format(*duplicate))
Add Comment
Please, Sign In to add comment