Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import cv2
- import numpy as np
- import os
- # Set the directory where images are stored
- image_dir = 'path_to_images/'
- output_dir = 'path_to_output/'
- # Load one image to manually get the logo coordinates
- sample_image = cv2.imread(os.path.join(image_dir, 'sample_image.jpg'))
- # Set the coordinates of the logo (x, y, width, height)
- logo_coords = (x, y, w, h)
- # Create a mask for the logo
- mask = np.zeros_like(sample_image[:, :, 0]) # Same size as image, single channel
- cv2.rectangle(mask, (logo_coords[0], logo_coords[1]),
- (logo_coords[0] + logo_coords[2], logo_coords[1] + logo_coords[3]),
- 255, -1)
- # Function to remove logo using inpainting
- def remove_logo(image, mask):
- # Inpaint the area of the logo
- result = cv2.inpaint(image, mask, 3, cv2.INPAINT_TELEA)
- return result
- # Process all images
- for filename in os.listdir(image_dir):
- if filename.endswith('.jpg') or filename.endswith('.png'):
- img = cv2.imread(os.path.join(image_dir, filename))
- result = remove_logo(img, mask)
- cv2.imwrite(os.path.join(output_dir, filename), result)
- print("Logo removal completed for all images.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement