In this tutorial, we are going to share code that prints any text on an image with a different style using the Python OpenCV library using the cv2.putText() function.
Syntax: cv2.putText(image, text, org, font, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])
How to write Text on Image?
import cv2
import numpy as np
img_path = r"C:\Users\kashz\AI Life\AI Projects - IAIP, PTs (Web + Channel)\02 OpenCV\000 opencv tutorial\data\images\adult-beautiful-beauty-1464523.jpg"
image = cv2.imread(img_path)
image = cv2.resize(image, (1280, 720))
text = "Model"
org = (100, 200)
font = cv2.FONT_HERSHEY_COMPLEX
fontScale = 6
color = (0,0,255) #(B, G, R)
thickness = 3
lineType = cv2.LINE_AA
bottomLeftOrigin = False
# Syntax>> cv2.putText(image, text, org, font, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])
img_text = cv2.putText(image, text, org, font, fontScale, color, thickness, lineType, bottomLeftOrigin)
cv2.imshow("Text Image", img_text)
cv2.waitKey(0)
cv2.destroyAllWindows()
Print text Inverse
import cv2
import numpy as np
img_path = r"C:\Users\kashz\AI Life\AI Projects - IAIP, PTs (Web + Channel)\02 OpenCV\000 opencv tutorial\data\images\adult-beautiful-beauty-1464523.jpg"
image = cv2.imread(img_path)
image = cv2.resize(image, (1280, 720))
text = "Model"
org = (100, 200)
font = cv2.FONT_HERSHEY_COMPLEX
fontScale = 6
color = (0,0,255) #(B, G, R)
thickness = 3
lineType = cv2.LINE_AA
bottomLeftOrigin = True
# cv2.putText(image, text, org, font, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])
img_text = cv2.putText(image, text, org, font, fontScale, color, thickness, lineType, bottomLeftOrigin)
cv2.imshow("Text Image", img_text)
cv2.waitKey(0)
cv2.destroyAllWindows()
Print text with reflection
import cv2
import numpy as np
img_path = r"C:\Users\kashz\AI Life\AI Projects - IAIP, PTs (Web + Channel)\02 OpenCV\000 opencv tutorial\data\images\adult-beautiful-beauty-1464523.jpg"
image = cv2.imread(img_path)
image = cv2.resize(image, (1280, 720))
text = "Model"
org = (100, 200)
font = cv2.FONT_HERSHEY_COMPLEX
fontScale = 6
color = (0,0,255) #(B, G, R)
thickness = 3
lineType = cv2.LINE_AA
bottomLeftOrigin = True
# cv2.putText(image, text, org, font, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])
img_text = cv2.putText(image, text, org, font, fontScale, color, thickness, lineType, bottomLeftOrigin)
img_text = cv2.putText(image, text, org, font, fontScale, color, thickness, lineType, bottomLeftOrigin=False)
cv2.imshow("Text Image", img_text)
cv2.waitKey(0)
cv2.destroyAllWindows()
Text with different color and font with size
import cv2
import numpy as np
img_path = r"C:\Users\kashz\AI Life\AI Projects - IAIP, PTs (Web + Channel)\02 OpenCV\000 opencv tutorial\data\images\adult-beautiful-beauty-1464523.jpg"
image = cv2.imread(img_path)
image = cv2.resize(image, (1280, 720))
text = "Indian AI Production"
org = (50, 100)
font = cv2.FONT_HERSHEY_COMPLEX_SMALL
fontScale = 4
color = (87,67,23) #(B, G, R)
thickness = 3
lineType = cv2.LINE_AA
bottomLeftOrigin = True
# cv2.putText(image, text, org, font, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])
img_text = cv2.putText(image, text, org, font, fontScale, color, thickness, lineType, bottomLeftOrigin)
img_text = cv2.putText(image, text, org, font, fontScale, color, thickness, lineType, bottomLeftOrigin=False)
cv2.imshow("Text Image", img_text)
cv2.waitKey(0)
cv2.destroyAllWindows()
Font Style
//! Only a subset of Hershey fonts
enum HersheyFonts {
FONT_HERSHEY_SIMPLEX = 0, //!< normal size sans-serif font
FONT_HERSHEY_PLAIN = 1, //!< small size sans-serif font
FONT_HERSHEY_DUPLEX = 2, //!< normal size sans-serif font (more complex than FONT_HERSHEY_SIMPLEX)
FONT_HERSHEY_COMPLEX = 3, //!< normal size serif font
FONT_HERSHEY_TRIPLEX = 4, //!< normal size serif font (more complex than FONT_HERSHEY_COMPLEX)
FONT_HERSHEY_COMPLEX_SMALL = 5, //!< smaller version of FONT_HERSHEY_COMPLEX
FONT_HERSHEY_SCRIPT_SIMPLEX = 6, //!< hand-writing style font
FONT_HERSHEY_SCRIPT_COMPLEX = 7, //!< more complex variant of FONT_HERSHEY_SCRIPT_SIMPLEX
FONT_ITALIC = 16 //!< flag for italic font
};
LineTyle
cv::LineTypes {
cv::FILLED = -1,
cv::LINE_4 = 4,
cv::LINE_8 = 8,
cv::LINE_AA = 16
REF: https://docs.opencv.org/master/d6/d6e/group__imgproc__draw.html