def evaluate_feature_extraction(output_file='face.pdf', output2_file='surfature.pdf', output3_file='mouth.pdf'):
    import algorithms
    f = face(4, fit=False)
    g = face(4)
    h = face(1)
    grey = (0.7, 0.7, 0.7, 0.7)
    K, H, Pmax, Pmin = algorithms.surfature(f)

    ########

    figure = pyplot.figure()

    subplot = pyplot.subplot(1, 1, 1)
    subplot.imshow(h.abs_file.data['Z'])

    subplot.xaxis.set_visible(False)
    subplot.yaxis.set_visible(False)

    figure.savefig("raw.pdf", format='pdf', dpi=600, orientation='landscape', bbox_inches="tight")

    ########

    figure = pyplot.figure()

    subplot = pyplot.subplot(1, 1, 1)
    subplot.imshow(f.Z)

    for name, point in f.key_points.iteritems():
        x, y = point
        subplot.plot(x, y, 'x', color='k') 

    nose_x, nose_y = f.key_points['nose']
    lip_x, lip_y = f.key_points['lip']
    chin_x, chin_y = f.key_points['chin']

    nose_left_x, nose_left_y = f.key_points['nose_left']
    nose_right_x, nose_right_y = f.key_points['nose_right']
    lip_left_x, lip_left_y = f.key_points['lip_left']
    lip_right_x, lip_right_y = f.key_points['lip_right']

    border_lip_left_x, border_lip_left_y = f.key_points['border_lip_left']
    border_lip_right_x, border_lip_right_y = f.key_points['border_lip_right']

    pyplot.plot([nose_left_x, nose_right_x], [nose_left_y, nose_right_y], color="K")
    pyplot.plot([lip_left_x, lip_right_x], [lip_left_y, lip_right_y], color="K")

    subplot.xaxis.set_visible(False)
    subplot.yaxis.set_visible(False)

    figure.savefig(output_file, format='pdf', dpi=600, orientation='landscape', bbox_inches="tight")

    ########

    figure = pyplot.figure()

    subplot = pyplot.subplot(1, 1, 1)
    subplot.imshow(g.Z)

    subplot.xaxis.set_visible(False)
    subplot.yaxis.set_visible(False)

    figure.savefig("face2.pdf", format='pdf', dpi=600, orientation='landscape', bbox_inches="tight")

    ########

    figure = pyplot.figure(figsize=(10, 5))

    subplot = pyplot.subplot(1, 1, 1)
    #subplot.plot(K[:, nose_x])
    a, = subplot.plot(H[:, nose_x] * 2)
    #subplot.plot(Pmin[:, nose_x])
    b, = subplot.plot(Pmax[:, nose_x])
    c, = subplot.plot(f.Z[:, nose_x] / 50)

    subplot.set_xlabel('Vertical Face Position')
    subplot.set_ylabel('Value')
    subplot.axvline(nose_y, color=grey)
    subplot.axvline(lip_y, color=grey)
    subplot.axvline(chin_y, color=grey)
    subplot.legend([a, b, c], ["Mean", "Pmax", "Original"])

    figure.show()
    figure.savefig(output_file, format='pdf', dpi=600, orientation='landscape', bbox_inches="tight")

    ##########
    figure = pyplot.figure(figsize=(10, 5))

    subplot = pyplot.subplot(1, 2, 1)

    #a, = subplot.plot(Pmax[(lip_y - 5):(lip_y + 5), :])
    a, = subplot.plot(H[lip_y, :])
    b, = subplot.plot(Pmax[lip_y, :] * 2)
    c, = subplot.plot(f.Z[lip_y, :] / 20)

    subplot.set_xlabel('Horizontal Face Position')
    subplot.set_ylabel('Value')
    subplot.axvline(lip_right_x, color=grey)
    subplot.axvline(lip_left_x, color=grey)
    subplot.axvline(border_lip_left_x, color=grey)
    subplot.axvline(border_lip_right_x, color=grey)
    subplot.legend([a, b, c], ["Mean", "Pmax", "Original"])

    subplot = pyplot.subplot(1, 2, 2)

    a, = subplot.plot(numpy.nansum(H[(lip_y - 5):(lip_y + 5), :], axis=0))
    b, = subplot.plot(numpy.nansum(Pmax[(lip_y - 5):(lip_y + 5), :], axis=0) * 2)
    c, = subplot.plot(numpy.nansum(f.Z[(lip_y - 5):(lip_y + 5), :], axis=0) / 100)

    subplot.set_xlabel('Horizontal Face Position (summed)')
    subplot.set_ylabel('Value')
    subplot.axvline(lip_right_x, color=grey)
    subplot.axvline(lip_left_x, color=grey)
    subplot.axvline(border_lip_left_x, color=grey)
    subplot.axvline(border_lip_right_x, color=grey)
    subplot.legend([a, b, c], ["Mean", "Pmax", "Original"])

    figure.savefig(output_file, format='pdf', dpi=600, orientation='landscape', bbox_inches="tight")
dataset/ETHPy150Open basilfx/Course-Face3D/face3d/utils.py/evaluate_feature_extraction/original