code: def diff_with_target(self, binary_im):
          
          red = np.array([BINARY_IM_MAX_VAL, 0, 0])
          yellow = np.array([BINARY_IM_MAX_VAL, BINARY_IM_MAX_VAL, 0])
          green = np.array([0, BINARY_IM_MAX_VAL, 0])
          overlap_data = np.zeros([self.height, self.width, 3])
          unfilled_px = np.where((self.data == 0) & (binary_im.data > 0))
          overlap_data[unfilled_px[0], unfilled_px[1], :] = red
          filled_px = np.where((self.data > 0) & (binary_im.data > 0))
          overlap_data[filled_px[0], filled_px[1], :] = green
          spurious_px = np.where((self.data > 0) & (binary_im.data == 0))
          overlap_data[spurious_px[0], spurious_px[1], :] = yellow
          return ColorImage(overlap_data.astype(np.uint8), frame=self.frame)
docs: Creates a color image to visualize the overlap between two images.
          Nonzero pixels that match in both images are green.
          Nonzero pixels of this image that aren't in the other image are yellow
          Nonzero pixels of the other image that aren't in this image are red
  
          Parameters
          ----------
          binary_im : :obj:`BinaryImage`
              binary image to take the difference with
  
          Returns
          -------
          :obj:`ColorImage`
              color image to visualize the image difference