How To Create A Watermark On Images Using OpenCV
Watermark is a message that may be a logo, signature, or stamp that is used to recognize the ownership of the creator. It visualizes the logo without interpreting the visibility of the image. These watermarks are used by most of the organizations, professionals before sharing their content in public platforms to prevent other people from using it. In this article, we will demonstrate how to create a watermark on the original image through the logo and text. Topics covered in this article: Creating watermark using an imageDefining the transparent functionDefining function to add image Creating watermark using text Importing PIL functionAdjusting the position of the text So, now we will start adding the watermark to the image using the below implementation in which we will use the OpenCV library of python. Creating watermark using an image Step-1: Importing required libraries and loading the images. import cv2 from google.colab.patches import cv2_imshow image_1= cv2.imread('/content/images(10).jpg') image_2=cv2.imread(’/content/images_logo(11).jpg’) cv2_show(image_1) cv2_show(image_2) In the above output, we displayed the logo and original image, in further demonstrations we will be using these images to create a watermark. The second image was downloaded from this link. Step-2: Defining a preprocessing function Using the below code snippet we can set the position of our logo on the image. using h, w, _ = overlay.shape y we get the shape of the image based on this snippet, x = pos[0], pos[0] we can assign values. def preprocessing(src, overlay, pos=(0, 0), scale=1): overlay = cv2.resize(overlay, (0, 0), fx=scale, fy=scale) h, w, _ = overlay.shape rows, cols, _ = src.shape y, x = pos[0], pos[0] Here we are using for loop, to apply the blend equation to all pixels in the image for i in range(h): for j in range(w): if x + i >= rows or y + j >= cols: continue alpha = float(overlay[i][j][0] / 255.0) src[x + i][y + j] = alpha * overlay[i][j][:3] + (1 - alpha)*src[x + i][y + j] return src Step-3: Defining function to create watermark def watermark(Logo_img,original_img,opacity,pos=(100,10),): opacity = opacity / 100 Img1 = cv2.imread(original_img, -1) Img2 = cv2.imread(Logo_img, -1) final = Img1.copy() print(final.shape) overlay = transparentOverlay(final,Img2, pos) output = Img1.copy() cv2.addWeighted(overlay, opacity, output, 1 - opacity, 0, output) cv2_imshow(output) Step-4: The main function to display output Using the below code snippet, we will add the original image, logo, opacity, and position of the logo on our original image. watermark(image_1,image_2,100,(100,10)) As we can see in the above output, we added a logo on the top left in the image. Creating watermark on the image using text Using the below code snippet, we will give our image as an input and a text to display a watermark on the image. By assigning a value to margin we can adjust the position of the text in the image. from PIL import Image, ImageDraw, ImageFont original_img = Image.open('/content/download (17).jpg') width, height = original_img.size draw = ImageDraw.Draw(original_img) text = "prudhvi.verma@anlyticsindiamagzine.com" textwidth, textheight = draw.textsize(text) margin = 10 x = width - textwidth - margin y = height - textheight - margin draw.text((x, y), text) original_img.show() img = im.save('/content/Untitled Folder.png') Conclusion In the above article, we demonstrated how to add an image as a watermark to our images and how to add a text as a watermark on our image using OpenCV library of python.
In this article, we will demonstrate how to create a watermark on the original image through the logo and text.
How To Create A Watermark On Images Using OpenCV - An easiest and quick way for image watermarking in Python - Beginners approach
["Computer Vision", "image processing", "OpenCV", "Python"]
["Go", "TPU", "programming_languages:R", "AI", "image processing", "OpenCV", "Python", "Colab", "programming_languages:Python", "Computer Vision", "GAN", "R"]
["AI", "Colab", "OpenCV", "TPU", "Python", "R", "Go", "GAN", "programming_languages:Python", "programming_languages:R"]
AI enthusiast, Currently working with Analytics India Magazine. I have experience of working with  Machine learning, Deep learning real-time problems, Neural networks, structuring and machine learning projects. I am a Computer Vision researcher and I am Interested in solving real-time computer vision problems.