Guest User

Untitled

a guest
Feb 3rd, 2023
15
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. import cv2
  2. import numpy as np
  3. from sklearn.metrics.pairwise import cosine_similarity
  4.  
  5. def extract_features(video_path):
  6. """Extract features from the video using OpenCV"""
  7. cap = cv2.VideoCapture(video_path)
  8. features = []
  9. while True:
  10. ret, frame = cap.read()
  11. if not ret:
  12. break
  13. gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
  14. features.append(cv2.calcHist([gray], [0], None, [256], [0, 256]))
  15. cap.release()
  16. return np.array(features).flatten()
  17.  
  18. def compare_videos(features1, features2):
  19. """Compare the features of two videos and return a similarity score"""
  20. return cosine_similarity(features1.reshape(1, -1), features2.reshape(1, -1))[0][0]
  21.  
  22. def search_duplicates(path):
  23. """Search for duplicate videos in the given path"""
  24. duplicates = []
  25. processed_videos = []
  26. for root, dirs, files in os.walk(path):
  27. for filename in files:
  28. file_path = os.path.join(root, filename)
  29. features = extract_features(file_path)
  30. for processed_video in processed_videos:
  31. score = compare_videos(features, processed_video[1])
  32. if score > 0.95:
  33. # Found a duplicate video
  34. duplicates.append((file_path, processed_video[0]))
  35. processed_videos.append((file_path, features))
  36. return duplicates
  37.  
  38. # Example usage
  39. duplicates = search_duplicates("/path/to/local/storage")
  40. for duplicate in duplicates:
  41. print("Duplicate found: {} and {}".format(*duplicate))
  42.  
Add Comment
Please, Sign In to add comment