docs: def main(command_line_arguments=None):
    """Reads score files, computes error measures and plots curves."""
  
    args = command_line_options(command_line_arguments)
  
    # get some colors for plotting
    cmap = mpl.cm.get_cmap(name='hsv')
    count = len(args.files) + (len(args.baselines) if args.baselines else 0)
    colors = [cmap(i) for i in numpy.linspace(0, 1.0, count+1)]
  
    # First, read the score files
    logger.info("Loading %d score files" % len(args.files))
  
    scores = [read_score_file(os.path.join(args.directory, f)) for f in args.files]
  
    false_alarms = []
    detection_rate = []
    logger.info("Computing FROC curves")
    for score in scores:
      # compute some thresholds
      tmin = min(score[2])
      tmax = max(score[2])
      count = 100
      thresholds = [tmin + float(x)/count * (tmax - tmin) for x in range(count+2)]
      false_alarms.append([])
      detection_rate.append([])
      for threshold in thresholds:
        detection_rate[-1].append(numpy.count_nonzero(numpy.array(score[1]) >= threshold) / float(score[0]))
        false_alarms[-1].append(numpy.count_nonzero(numpy.array(score[2]) >= threshold))
      # to display 0 in a semilogx plot, we have to add a little
  #    false_alarms[-1][-1] += 1e-8
  
    # also read baselines
    if args.baselines is not None:
      for baseline in args.baselines:
        dr = []
        fa = []
        with open(os.path.join(args.baseline_directory, baseline)) as f:
          for line in f:
            splits = line.rstrip().split()
            dr.append(float(splits[0]))
            fa.append(int(splits[1]))
        false_alarms.append(fa)
        detection_rate.append(dr)
  
    logger.info("Plotting FROC curves to file '%s'", args.output)
    # create a multi-page PDF for the ROC curve
    pdf = PdfPages(args.output)
    figure = _plot_froc(false_alarms, detection_rate, colors, args.legends, args.title, args.max)
    mpl.xlabel('False Alarm (of %d pruned)' % len(scores[0][2]))
    mpl.ylabel('Detection Rate in \%% (total %d faces)' % scores[0][0])
    pdf.savefig(figure)
    pdf.close()
  
    if args.count_detections:
      for i, f in enumerate(args.files):
        det, all = count_detections(f)
        print("The number of detected faces for %s is %d out of %d" % (args.legends[i], det, all))