code: def test_plot_matches():
      from matplotlib import pyplot as plt
  
      fig, ax = plt.subplots(nrows=1, ncols=1)
  
      shapes = (
          ((10, 10), (10, 10)),
          ((10, 10), (12, 10)),
          ((10, 10), (10, 12)),
          ((10, 10), (12, 12)),
          ((12, 10), (10, 10)),
          ((10, 12), (10, 10)),
          ((12, 12), (10, 10)),
      )
  
      keypoints1 = 10 * np.random.rand(10, 2)
      keypoints2 = 10 * np.random.rand(10, 2)
      idxs1 = np.random.randint(10, size=10)
      idxs2 = np.random.randint(10, size=10)
      matches = np.column_stack((idxs1, idxs2))
  
      for shape1, shape2 in shapes:
          img1 = np.zeros(shape1)
          img2 = np.zeros(shape2)
          plot_matches(ax, img1, img2, keypoints1, keypoints2, matches)
          plot_matches(
              ax,
              img1,
              img2,
              keypoints1,
              keypoints2,
              matches,
              only_matches=True,
          )
          plot_matches(
              ax,
              img1,
              img2,
              keypoints1,
              keypoints2,
              matches,
              keypoints_color="r",
          )
          plot_matches(
              ax,
              img1,
              img2,
              keypoints1,
              keypoints2,
              matches,
              matches_color="r",
          )
          plot_matches(
              ax,
              img1,
              img2,
              keypoints1,
              keypoints2,
              matches,
              alignment="vertical",
          )
  
file_path: scikit-image/skimage/feature/tests/test_util.py
imports: import numpy
  import pytest
  from skimage._shared._dependency_checks import has_mpl
  from skimage.feature.util import FeatureDetector, DescriptorExtractor, _prepare_grayscale_input_2D, _mask_border_keypoints, plot_matches
label_desc: Use image node_id 5 for calling a global function with example usage: test_plot_matches() without return types