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.")