How to add text to an image segment

11,916
plt.text(x, y, s, bbox=dict(fill=False, edgecolor='red', linewidth=2))

with x being the coodinate of your x-axis and y the coordinate of your y-axis. s is the string you want to write to your plot.

bbox let's you have both a text and a rectangle around it. bbox requires a dict with the Rectangle properties (https://matplotlib.org/api/_as_gen/matplotlib.patches.Rectangle.html#matplotlib.patches.Rectangle), which you already used in your code.

Share:
11,916
Nour
Author by

Nour

Updated on June 18, 2022

Comments

  • Nour
    Nour about 2 years

    I have the following Python code, which adds a bounding box around the detected segments

    %matplotlib qt
    fig, ax = plt.subplots(figsize=(10, 6))
    ax.imshow(image_label_overlay)
    for region in regions:
     # take regions with large enough areas
     if region.area >= 100:
        # draw rectangle around segmented coins
        minr, minc, maxr, maxc = region.bbox
        rect = mpatches.Rectangle((minc, minr), maxc - minc, maxr - minr,
                                  fill=False, edgecolor='red', linewidth=2)
        ax.add_patch(rect)
    
    
     ax.set_axis_off()
    
     plt.tight_layout()
     plt.show()
    

    Instead of drawing a bounding box, I want to number the segments. i.e. I want to add a number at the center of each segment. How can I do this?