mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-08-03 16:58:24 +02:00
[ui] Viewer Stats: more global SfM statistics
This commit is contained in:
parent
4f4d576cdf
commit
48d4fcacd9
1 changed files with 202 additions and 32 deletions
|
@ -31,41 +31,11 @@ FloatingPane {
|
|||
onWheel: {}
|
||||
}
|
||||
|
||||
InteractiveChartView {
|
||||
id: landmarksPerViewChart
|
||||
width: parent.width * 0.5
|
||||
height: parent.height * 0.5
|
||||
|
||||
title: "Landmarks Per View"
|
||||
legend.visible: false
|
||||
antialiasing: true
|
||||
|
||||
ValueAxis {
|
||||
id: landmarksPerViewValueAxisX
|
||||
titleText: "Ordered Views"
|
||||
min: 0.0
|
||||
max: sfmDataStat.landmarksPerViewMaxAxisX
|
||||
}
|
||||
ValueAxis {
|
||||
id: landmarksPerViewValueAxisY
|
||||
labelFormat: "%i"
|
||||
titleText: "Number of Landmarks"
|
||||
min: 0
|
||||
max: sfmDataStat.landmarksPerViewMaxAxisY
|
||||
}
|
||||
LineSeries {
|
||||
id: landmarksPerViewLineSerie
|
||||
axisX: landmarksPerViewValueAxisX
|
||||
axisY: landmarksPerViewValueAxisY
|
||||
}
|
||||
}
|
||||
|
||||
InteractiveChartView {
|
||||
InteractiveChartView {
|
||||
id: residualsPerViewChart
|
||||
width: parent.width * 0.5
|
||||
height: parent.height * 0.5
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: (parent.height) * 0.5
|
||||
|
||||
title: "Residuals Per View"
|
||||
legend.visible: false
|
||||
|
@ -80,7 +50,7 @@ FloatingPane {
|
|||
}
|
||||
ValueAxis {
|
||||
id: residualsPerViewValueAxisY
|
||||
titleText: "Percentage of residuals"
|
||||
titleText: "Reprojection Error (pix)"
|
||||
min: 0
|
||||
max: sfmDataStat.residualsPerViewMaxAxisY
|
||||
tickAnchor: 0
|
||||
|
@ -111,6 +81,18 @@ FloatingPane {
|
|||
axisY: residualsPerViewValueAxisY
|
||||
name: "Median"
|
||||
}
|
||||
LineSeries {
|
||||
id: residualsFirstQuartilePerViewLineSerie
|
||||
axisX: residualsPerViewValueAxisX
|
||||
axisY: residualsPerViewValueAxisY
|
||||
name: "Q1"
|
||||
}
|
||||
LineSeries {
|
||||
id: residualsThirdQuartilePerViewLineSerie
|
||||
axisX: residualsPerViewValueAxisX
|
||||
axisY: residualsPerViewValueAxisY
|
||||
name: "Q3"
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
|
@ -146,6 +128,183 @@ FloatingPane {
|
|||
}
|
||||
}
|
||||
|
||||
InteractiveChartView {
|
||||
id: observationsLengthsPerViewChart
|
||||
width: parent.width * 0.5
|
||||
height: parent.height * 0.5
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: (parent.height) * 0.5
|
||||
|
||||
title: "Observations Lengths Per View"
|
||||
legend.visible: false
|
||||
antialiasing: true
|
||||
|
||||
ValueAxis {
|
||||
id: observationsLengthsPerViewValueAxisX
|
||||
labelFormat: "%i"
|
||||
titleText: "Ordered Views"
|
||||
min: 0
|
||||
max: sfmDataStat.observationsLengthsPerViewMaxAxisX
|
||||
}
|
||||
ValueAxis {
|
||||
id: observationsLengthsPerViewValueAxisY
|
||||
titleText: "Observations Lengths"
|
||||
min: 0
|
||||
max: sfmDataStat.observationsLengthsPerViewMaxAxisY
|
||||
tickAnchor: 0
|
||||
tickInterval: 0.50
|
||||
tickCount: sfmDataStat.observationsLengthsPerViewMaxAxisY * 2
|
||||
}
|
||||
|
||||
LineSeries {
|
||||
id: observationsLengthsMinPerViewLineSerie
|
||||
axisX: observationsLengthsPerViewValueAxisX
|
||||
axisY: observationsLengthsPerViewValueAxisY
|
||||
name: "Min"
|
||||
}
|
||||
LineSeries {
|
||||
id: observationsLengthsMaxPerViewLineSerie
|
||||
axisX: observationsLengthsPerViewValueAxisX
|
||||
axisY: observationsLengthsPerViewValueAxisY
|
||||
name: "Max"
|
||||
}
|
||||
LineSeries {
|
||||
id: observationsLengthsMeanPerViewLineSerie
|
||||
axisX: observationsLengthsPerViewValueAxisX
|
||||
axisY: observationsLengthsPerViewValueAxisY
|
||||
name: "Mean"
|
||||
}
|
||||
LineSeries {
|
||||
id: observationsLengthsMedianPerViewLineSerie
|
||||
axisX: observationsLengthsPerViewValueAxisX
|
||||
axisY: observationsLengthsPerViewValueAxisY
|
||||
name: "Median"
|
||||
}
|
||||
LineSeries {
|
||||
id: observationsLengthsFirstQuartilePerViewLineSerie
|
||||
axisX: observationsLengthsPerViewValueAxisX
|
||||
axisY: observationsLengthsPerViewValueAxisY
|
||||
name: "Q1"
|
||||
}
|
||||
LineSeries {
|
||||
id: observationsLengthsThirdQuartilePerViewLineSerie
|
||||
axisX: observationsLengthsPerViewValueAxisX
|
||||
axisY: observationsLengthsPerViewValueAxisY
|
||||
name: "Q3"
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
id: observationsLengthsPerViewBtnContainer
|
||||
|
||||
Layout.fillWidth: true
|
||||
anchors.bottom: observationsLengthsPerViewChart.bottom
|
||||
anchors.bottomMargin: 35
|
||||
anchors.left: observationsLengthsPerViewChart.left
|
||||
anchors.leftMargin: observationsLengthsPerViewChart.width * 0.25
|
||||
|
||||
RowLayout {
|
||||
|
||||
ChartViewCheckBox {
|
||||
id: allModes
|
||||
text: "ALL"
|
||||
color: textColor
|
||||
checkState: observationsLengthsPerViewLegend.buttonGroup.checkState
|
||||
onClicked: {
|
||||
var _checked = checked;
|
||||
for(var i = 0; i < observationsLengthsPerViewChart.count; ++i)
|
||||
{
|
||||
observationsLengthsPerViewChart.series(i).visible = _checked;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ChartViewLegend {
|
||||
id: observationsLengthsPerViewLegend
|
||||
chartView: observationsLengthsPerViewChart
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
InteractiveChartView {
|
||||
id: landmarksPerViewChart
|
||||
width: parent.width * 0.5
|
||||
height: parent.height * 0.5
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: (parent.width) * 0.5
|
||||
anchors.top: parent.top
|
||||
|
||||
title: "Landmarks Per View"
|
||||
legend.visible: false
|
||||
antialiasing: true
|
||||
|
||||
ValueAxis {
|
||||
id: landmarksPerViewValueAxisX
|
||||
titleText: "Ordered Views"
|
||||
min: 0.0
|
||||
max: sfmDataStat.landmarksPerViewMaxAxisX
|
||||
}
|
||||
ValueAxis {
|
||||
id: landmarksPerViewValueAxisY
|
||||
labelFormat: "%i"
|
||||
titleText: "Number of Landmarks"
|
||||
min: 0
|
||||
max: sfmDataStat.landmarksPerViewMaxAxisY
|
||||
}
|
||||
LineSeries {
|
||||
id: landmarksPerViewLineSerie
|
||||
axisX: landmarksPerViewValueAxisX
|
||||
axisY: landmarksPerViewValueAxisY
|
||||
name: "Landmarks"
|
||||
}
|
||||
LineSeries {
|
||||
id: featuresPerViewLineSerie
|
||||
axisX: landmarksPerViewValueAxisX
|
||||
axisY: landmarksPerViewValueAxisY
|
||||
name: "Features"
|
||||
}
|
||||
LineSeries {
|
||||
id: tracksPerViewLineSerie
|
||||
axisX: landmarksPerViewValueAxisX
|
||||
axisY: landmarksPerViewValueAxisY
|
||||
name: "Tracks"
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
id: landmarksFeatTracksPerViewBtnContainer
|
||||
|
||||
Layout.fillWidth: true
|
||||
anchors.bottom: landmarksPerViewChart.bottom
|
||||
anchors.bottomMargin: 35
|
||||
anchors.left: landmarksPerViewChart.left
|
||||
anchors.leftMargin: landmarksPerViewChart.width * 0.25
|
||||
|
||||
RowLayout {
|
||||
|
||||
ChartViewCheckBox {
|
||||
id: allFeatures
|
||||
text: "ALL"
|
||||
color: textColor
|
||||
checkState: landmarksFeatTracksPerViewLegend.buttonGroup.checkState
|
||||
onClicked: {
|
||||
var _checked = checked;
|
||||
for(var i = 0; i < landmarksPerViewChart.count; ++i)
|
||||
{
|
||||
landmarksPerViewChart.series(i).visible = _checked;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ChartViewLegend {
|
||||
id: landmarksFeatTracksPerViewLegend
|
||||
chartView: landmarksPerViewChart
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Stats from the sfmData
|
||||
AliceVision.MSfMDataStats {
|
||||
id: sfmDataStat
|
||||
|
@ -153,10 +312,21 @@ FloatingPane {
|
|||
onStatsChanged: {
|
||||
console.warn("QML AliceVision.MSfMDataStats statsChanged: " + sfmDataStat.msfmData);
|
||||
fillLandmarksPerViewSerie(landmarksPerViewLineSerie);
|
||||
fillFeaturesPerViewSerie(featuresPerViewLineSerie);
|
||||
fillTracksPerViewSerie(tracksPerViewLineSerie);
|
||||
fillResidualsMinPerViewSerie(residualsMinPerViewLineSerie);
|
||||
fillResidualsMaxPerViewSerie(residualsMaxPerViewLineSerie);
|
||||
fillResidualsMeanPerViewSerie(residualsMeanPerViewLineSerie);
|
||||
fillResidualsMedianPerViewSerie(residualsMedianPerViewLineSerie);
|
||||
fillResidualsFirstQuartilePerViewSerie(residualsFirstQuartilePerViewLineSerie);
|
||||
fillResidualsThirdQuartilePerViewSerie(residualsThirdQuartilePerViewLineSerie);
|
||||
fillObservationsLengthsMinPerViewSerie(observationsLengthsMinPerViewLineSerie);
|
||||
fillObservationsLengthsMaxPerViewSerie(observationsLengthsMaxPerViewLineSerie);
|
||||
fillObservationsLengthsMeanPerViewSerie(observationsLengthsMeanPerViewLineSerie);
|
||||
fillObservationsLengthsMedianPerViewSerie(observationsLengthsMedianPerViewLineSerie);
|
||||
fillObservationsLengthsFirstQuartilePerViewSerie(observationsLengthsFirstQuartilePerViewLineSerie);
|
||||
fillObservationsLengthsThirdQuartilePerViewSerie(observationsLengthsThirdQuartilePerViewLineSerie);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue