for image_path in TEST_IMAGE_PATHS:
image = Image.open(image_path)
# the array based representation of the image will be used later in order to prepare the
# result image with boxes and labels on it.
image_np = load_image_into_numpy_array(image)
# Expand dimensions since the model expects images to have shape: [1, None, None, 3]
image_np_expanded = np.expand_dims(image_np, axis=0)
# Actual detection.
output_dict = run_inference_for_single_image(image_np, detection_graph)
# Visualization of the results of a detection.
vis_util.visualize_boxes_and_labels_on_image_array(
image_np,
output_dict['detection_boxes'],
output_dict['detection_classes'],
output_dict['detection_scores'],
category_index,
instance_masks=output_dict.get('detection_masks'),
use_normalized_coordinates=True,
line_thickness=8)
plt.figure(figsize=IMAGE_SIZE)
plt.imshow(image_np)
In one of the codes for tensorflow object detection API, there is the vis_util.visualize_boxes_and_labels_on_image_array method which draws bounding boxes on the image and returns the new image_np which is fed into plt.imshow(image_np) to display. However, vis_util.visualize_boxes_and_labels_on_image_array method is not assigned to image_np variable as shown in the code. How does plt.imshow(image_np) get the latest(The image which has the drawn bounding box) image?