-
-
Save aplz/fd34707deffb208f367808aade7e5d5c to your computer and use it in GitHub Desktop.
import cv2 # opencv | |
import numpy as np | |
font_scale = 1.5 | |
font = cv2.FONT_HERSHEY_PLAIN | |
# set the rectangle background to white | |
rectangle_bgr = (255, 255, 255) | |
# make a black image | |
img = np.zeros((500, 500)) | |
# set some text | |
text = "Some text in a box!" | |
# get the width and height of the text box | |
(text_width, text_height) = cv2.getTextSize(text, font, fontScale=font_scale, thickness=1)[0] | |
# set the text start position | |
text_offset_x = 10 | |
text_offset_y = img.shape[0] - 25 | |
# make the coords of the box with a small padding of two pixels | |
box_coords = ((text_offset_x, text_offset_y), (text_offset_x + text_width + 2, text_offset_y - text_height - 2)) | |
cv2.rectangle(img, box_coords[0], box_coords[1], rectangle_bgr, cv2.FILLED) | |
cv2.putText(img, text, (text_offset_x, text_offset_y), font, fontScale=font_scale, color=(0, 0, 0), thickness=1) | |
cv2.imshow("A box!", img) | |
cv2.waitKey(0) |
Thanks for sharing this, really helped me!
Very nice, thank you a lot�.
Thank you very much ^^
Thanks for your great code!
thanks for your help,
I did one for java
https://gist.github.com/yptheangel/9cbdce42775afd1fe7a28a9e9c98a0e9
There is a small bug which becomes prominent if you increase the padding.
On line 19, it should be: text_offset_x + text_width + 2
There is a small bug which becomes prominent if you increase the padding.
On line 19, it should be:text_offset_x + text_width + 2
Good catch! Thanks :-)
thanks for the help!
Thanks, great code!!
thanks man
Thanks, it helped a lot ;)
thanks!
Thanks! I additionally included the descender (letters that extend below the baseline) like this:
(text_width, text_height), baseline = cv2.getTextSize(text, font, fontScale=font_scale, thickness=1)
...
box_coords = ((text_offset_x, text_offset_y+baseline), (text_offset_x + text_width + 2, text_offset_y - text_height - 2))
Thanks! I additionally included the descender (letters that extend below the baseline) like this:
(text_width, text_height), baseline = cv2.getTextSize(text, font, fontScale=font_scale, thickness=1) ... box_coords = ((text_offset_x, text_offset_y+baseline), (text_offset_x + text_width + 2, text_offset_y - text_height - 2))
Great! 👍
Very usefull, thanks bro.
This code helped me, thank you.
It is especially helpful that this code runs 100% independently of any other code.