I have this code in which mtcnn detects faces on an image, draws a red rectangle around each face and prints on the screen.
Code taken from: https://machinelearningmastery.com/how-to-perform-face-detection-with-classical-and-deep-learning-methods-in-python-with-keras/
But I want to save the image with the red boxes arround each face. So that i can do some preprocessing on it. Any help is good.
# draw an image with detected objects
def draw_image_with_boxes(filename, result_list):
# load the image
data = pyplot.imread(filename)
# plot the image
pyplot.imshow(data)
# get the context for drawing boxes
ax = pyplot.gca()
# plot each box
for result in result_list:
# get coordinates
x, y, width, height = result['box']
# create the shape
rect = Rectangle((x, y), width, height, fill=False, color='red')
# draw the box
ax.add_patch(rect)
# show the plot
pyplot.show()
filename = 'test1.jpg'
# load image from file
pixels = pyplot.imread(filename)
# create the detector, using default weights
detector = MTCNN()
# detect faces in the image
faces = detector.detect_faces(pixels)
# display faces on the original image
draw_image_with_boxes(filename, faces)
You can use matplotlib.pyplot.savefig
. For example:
# save the plot
plt.savefig('image_with_box.jpg')
# show the plot
pyplot.show()
You can find more details here: https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.savefig.html