How Image Processing Revolutionizes Data Science (Day -2)

Shahi ShreshthShahi Shreshth
3 min read

#Day 2:Creation of Shape and Create Text with Vegeta from DragonBallZ!

Ready for a power-up worthy of Vegeta himself? Today, we're leveling up our image processing skills by creating awesome shapes and text directly on images!

Prerequisites:

Libraries:

Use pip (the Python package installer) to install the following libraries:

pip install pillow matplotlib imageio opencv-python These libraries provide powerful tools for various image processing tasks:

Pillow (PIL Fork): For basic image loading, manipulating pixels, and saving results.

matplotlib: For visualizing images using plots and figures.

imageio: For handling diverse image formats and advanced loading/saving options.

OpenCV (Open Source Computer Vision Library): A comprehensive library for real-time computer vision, offering extensive image processing and manipulation capabilities.

Work Environment is Kaggle you can visit and explore it open source and free!!!!!!

Key Concepts

Calling All Saiyan Warriors!

  1. Drawing Circles of Energy: Harness the power of OpenCV to draw vibrant circles on images. Explore different colors, thicknesses, and even fill them with energy!
import cv2 as cv
import matplotlib.pyplot as plt
img = cv.imread('../input/vegeta/mpmdbz-02_a10.jpg',1)
img1=cv.cvtColor(img,cv.COLOR_BGR2RGB)
img2=cv.cvtColor(img,cv.COLOR_BGR2RGB)
cv.circle(img1,(200,550),150,(0,220,0),50)
cv.circle(img2,(300,850),150,(255,220,0),-5)

plt.imshow(img1)
  • Converts both from OpenCV's default BGR (Blue-Green-Red) color space to RGB (Red-Green-Blue), a more common format for visualization.

  • Draws circles on the two copies:

    • img1: Circle at coordinates (200, 550), radius 150, color (0, 220, 0) (greenish-blue), thickness 50.

    • img2: Circle at (300, 850), radius 150, color (255, 220, 0) (yellowish), thickness -5 (filled circle).

  1. Writing Messages in the Stars: ✨ Use text superimposition to add epic captions, annotations, or even recreate those iconic Dragon Ball Z battle cries!
import cv2 as cv
import matplotlib.pyplot as plt
img = cv.imread('../input/vegeta/mpmdbz-02_a10.jpg',1)
img1=cv.cvtColor(img,cv.COLOR_BGR2RGB)
font = cv.FONT_HERSHEY_SIMPLEX #font family
cv.putText(img1,'Go! Go!',(500,500),font,5,(200,10,100),30) #




plt.imshow(img1)
  • Sets the font to be used for text. cv.FONT_HERSHEY_SIMPLEX is a simple.

  • Draws the text "Go! Go!" on the modified image img1.

  • Arguments:

    • img1: The image to place the text on.

    • 'Go! Go!': The text to write.

    • (500, 500): The coordinates for the bottom-left corner of the text.

    • font: The font selected earlier.

    • 5: Font scale (size).

    • (200, 10, 100): Text color in BGR format (pinkish-purple).

    • 30: Thickness of the text lines.

  1. Pixel Perfect Precision: Master accessing and manipulating individual pixels to create custom effects or highlight specific areas of interest.
import cv2 as cv
import matplotlib.pyplot as plt
img = cv.imread('../input/vegeta/wp4534369.jpg',1)
img1 =cv.cvtColor(img,cv.COLOR_BGR2RGB)
font = cv.FONT_HERSHEY_SIMPLEX
cv.putText(img1,'Go! Go!',(500,200),font,5,(200,10,100),30)
plt.imshow(img1)
cv.cvtColor(img,cv.COLOR_BGR2RGB)
cv.rectangle(img1,(0,0),(250,200),(0,0,250),-9)
cv.cvtColor(img,cv.COLOR_BGR2RGB)
cv.rectangle(img1,(1000,800),(1300,1080),(0,250,0),-9)
cv.cvtColor(img,cv.COLOR_BGR2RGB)
cv.circle(img1,(1160,650),150,(220,0,0),50)
cv.cvtColor(img,cv.COLOR_BGR2RGB)
cv.line(img1,(750,1000),(980,830),(250,250,10),80)
cv.cvtColor(img,cv.COLOR_BGR2RGB)
cv.line(img1,(1290,830),(1500,1000),(250,250,10),80)
plt.imshow(img1)

  • Draws two filled rectangles:

    • One in the top-left corner (blue), 250x200 pixels.

    • One in the bottom-right corner (green), 300x280 pixels.

  • Draws a red circle with a radius of 150 pixels, centered at (1160, 650).

  • Draws two thick, yellow lines:

    • One starting at (750, 1000) and ending at (980, 830).

    • One starting at (1290, 830) and ending at (1500, 1000).

Challenges for the Worthy:

  • Experiment with different shapes: Draw rectangles, lines, or even custom shapes using OpenCV's drawing functions.

  • Combine shapes and text: Create dynamic image compositions that tell a story or highlight key features.

  • Apply shape-based techniques: Try out image segmentation, object detection, or creative image manipulation using shapes as tools.

Over 9000 Possibilities!

Whether you're analyzing Vegeta's power levels or creating your own manga-inspired art, the possibilities are limitless!

Stay tuned for Day 3, where we'll explore even more exciting image processing techniques! ⚡️

P.S. Don't forget to share your image creations and any questions in the comments below! Let's build a thriving Saiyan community of image processing enthusiasts!

#ImageProcessing #DataScience #DragonBallZ #Vegeta #OpenCV #Shapes #Text #Day2

0
Subscribe to my newsletter

Read articles from Shahi Shreshth directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Shahi Shreshth
Shahi Shreshth