matplotlib: how to draw a rectangle on image

How to draw a rectangle on a image, like this: enter image description here

    import matplotlib.pyplot as plt
    from PIL import Image
    import numpy as np
    im = np.array(Image.open('dog.png'), dtype=np.uint8)
    plt.imshow(im)

I don't know what to do the next.

You can add a Rectangle patch to the matplotlib Axes.

For example (using the image from the tutorial here):

    import matplotlib.pyplot as plt
    import matplotlib.patches as patches
    from PIL import Image
    import numpy as np

    im = np.array(Image.open('stinkbug.png'), dtype=np.uint8)

    # Create figure and axes
    fig,ax = plt.subplots(1)

    # Display the image
    ax.imshow(im)

    # Create a Rectangle patch
    rect = patches.Rectangle((50,100),40,30,linewidth=1,edgecolor='r',facecolor='none')

    # Add the patch to the Axes
    ax.add_patch(rect)

    plt.show()

enter image description here

From: stackoverflow.com/q/37435369

Back to homepage or read more recommendations: