mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-07-12 06:17:22 +02:00
[multiview] add Graph Modification and convert inputFolder into a list of input files
* Always set a list of input files * Use GraphModification to do only one update
This commit is contained in:
parent
1472baa477
commit
39f6ef3d64
1 changed files with 54 additions and 38 deletions
|
@ -1,16 +1,32 @@
|
|||
import os
|
||||
import fnmatch
|
||||
import re
|
||||
|
||||
from .core.graph import Graph
|
||||
from .core.graph import Graph, GraphModification
|
||||
|
||||
|
||||
def photogrammetryPipeline(output, inputFolder='', inputImages=[], inputViewpoints=[]):
|
||||
def findFiles(folder, patterns):
|
||||
rules = [re.compile(fnmatch.translate(pattern), re.IGNORECASE) for pattern in patterns]
|
||||
outFiles = []
|
||||
for name in os.listdir(folder):
|
||||
for rule in rules:
|
||||
if rule.match(name):
|
||||
filepath = os.path.join(folder, name)
|
||||
outFiles.append(filepath)
|
||||
break
|
||||
return outFiles
|
||||
|
||||
|
||||
def photogrammetryPipeline(output='', inputFolder='', inputImages=[], inputViewpoints=[]):
|
||||
# type: () -> Graph
|
||||
graph = Graph('pipeline')
|
||||
with GraphModification(graph):
|
||||
cameraInit = graph.addNewNode('CameraInit')
|
||||
if inputFolder:
|
||||
cameraInit.imageDirectory.value = inputFolder
|
||||
images = findFiles(inputFolder, ['*.jpg', '*.png'])
|
||||
cameraInit.viewpoints.extend([{'image': image} for image in images])
|
||||
if inputImages:
|
||||
cameraInit.viewpoints.value = [{'image': image, 'focal': -1} for image in inputImages]
|
||||
cameraInit.viewpoints.extend([{'image': image} for image in inputImages])
|
||||
if inputViewpoints:
|
||||
cameraInit.viewpoints.extend(inputViewpoints)
|
||||
featureExtraction = graph.addNewNode('FeatureExtraction',
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue