Spaces:
Running
on
Zero
Running
on
Zero
File size: 3,944 Bytes
476e0f0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# ----------------------------------------------------------------------------
# - TanksAndTemples Website Toolbox -
# - http://www.tanksandtemples.org -
# ----------------------------------------------------------------------------
# The MIT License (MIT)
#
# Copyright (c) 2017
# Arno Knapitsch <arno.knapitsch@gmail.com >
# Jaesik Park <syncle@gmail.com>
# Qian-Yi Zhou <Qianyi.Zhou@gmail.com>
# Vladlen Koltun <vkoltun@gmail.com>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
# ----------------------------------------------------------------------------
#
# This python script is for downloading dataset from www.tanksandtemples.org
# The dataset has a different license, please refer to
# https://tanksandtemples.org/license/
import matplotlib.pyplot as plt
from cycler import cycler
def plot_graph(
scene,
fscore,
dist_threshold,
edges_source,
cum_source,
edges_target,
cum_target,
plot_stretch,
mvs_outpath,
show_figure=False,
):
f = plt.figure()
plt_size = [14, 7]
pfontsize = "medium"
ax = plt.subplot(111)
label_str = "precision"
ax.plot(
edges_source[1::],
cum_source * 100,
c="red",
label=label_str,
linewidth=2.0,
)
label_str = "recall"
ax.plot(
edges_target[1::],
cum_target * 100,
c="blue",
label=label_str,
linewidth=2.0,
)
ax.grid(True)
plt.rcParams["figure.figsize"] = plt_size
plt.rc("axes", prop_cycle=cycler("color", ["r", "g", "b", "y"]))
plt.title("Precision and Recall: " + scene + ", " + "%02.2f f-score" %
(fscore * 100))
plt.axvline(x=dist_threshold, c="black", ls="dashed", linewidth=2.0)
plt.ylabel("# of points (%)", fontsize=15)
plt.xlabel("Meters", fontsize=15)
plt.axis([0, dist_threshold * plot_stretch, 0, 100])
ax.legend(shadow=True, fancybox=True, fontsize=pfontsize)
# plt.axis([0, dist_threshold*plot_stretch, 0, 100])
plt.setp(ax.get_legend().get_texts(), fontsize=pfontsize)
plt.legend(loc=2, borderaxespad=0.0, fontsize=pfontsize)
plt.legend(loc=4)
leg = plt.legend(loc="lower right")
box = ax.get_position()
ax.set_position([box.x0, box.y0, box.width * 0.8, box.height])
# Put a legend to the right of the current axis
ax.legend(loc="center left", bbox_to_anchor=(1, 0.5))
plt.setp(ax.get_legend().get_texts(), fontsize=pfontsize)
png_name = mvs_outpath + "/PR_{0}_@d_th_0_{1}.png".format(
scene, "%04d" % (dist_threshold * 10000))
pdf_name = mvs_outpath + "/PR_{0}_@d_th_0_{1}.pdf".format(
scene, "%04d" % (dist_threshold * 10000))
# save figure and display
f.savefig(png_name, format="png", bbox_inches="tight")
f.savefig(pdf_name, format="pdf", bbox_inches="tight")
if show_figure:
plt.show()
|