Meshroom/meshroom/multiview.py
Fabien Castan a576fb8ce4 [multiview] set inputs only if not empty
Avoid errors with None
2017-10-31 21:21:10 +01:00

44 lines
2.1 KiB
Python

import os
from .core.graph import Graph
def photogrammetryPipeline(inputFolder='', inputImages=[], inputViewpoints=[]):
# type: () -> Graph
graph = Graph('pipeline')
cameraInit = graph.addNewNode('CameraInit')
if inputFolder:
cameraInit.imageDirectory.value = inputFolder
if inputImages:
cameraInit.viewpoints.value = [{'image': image, 'focal': -1} for image in inputImages]
if inputViewpoints:
cameraInit.viewpoints.extend(inputViewpoints)
featureExtraction = graph.addNewNode('FeatureExtraction',
input=cameraInit.outputSfm)
imageMatching = graph.addNewNode('ImageMatching',
input=featureExtraction.input,
featuresDirectory=featureExtraction.output,
)
featureMatching = graph.addNewNode('FeatureMatching',
input=imageMatching.input,
featuresDirectory=imageMatching.featuresDirectory,
imagePairsList=imageMatching.output)
structureFromMotion = graph.addNewNode('StructureFromMotion',
input=featureMatching.input,
featuresDirectory=featureMatching.featuresDirectory,
matchesDirectory=featureMatching.output)
prepareDenseScene = graph.addNewNode('PrepareDenseScene',
input=structureFromMotion.output)
cameraConnection = graph.addNewNode('CameraConnection',
ini=prepareDenseScene.ini)
depthMap = graph.addNewNode('DepthMap',
ini=cameraConnection.ini)
depthMapFilter = graph.addNewNode('DepthMapFilter',
ini=depthMap.ini)
meshing = graph.addNewNode('Meshing',
ini=depthMapFilter.ini)
texturing = graph.addNewNode('Texturing',
ini=meshing.ini)
return graph