mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-04-29 10:17:27 +02:00
44 lines
2.1 KiB
Python
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
|
|
|
|
|