Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/alicevision/meshroom.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorYann Lanthony <yann.lanthony@gmail.com>2019-01-29 17:06:58 +0300
committerYann Lanthony <yann.lanthony@gmail.com>2019-01-29 18:04:39 +0300
commit44371211d5896dca89e09ad68df1bfcd7154497f (patch)
tree1d5311f6ecdad47c9c7309326e9eca8cea34ff21 /bin
parentc6a3f0d58718de519d6ef50789b8c640f1e7f9c8 (diff)
[bin][photogrammetry] initialize CameraInit node using 'buildIntrinsics'
* build the complete image files list in meshroom_photogrammetry from input arguments * initialize CameraInit with input sfm data (views/intrinsics) if any * call buildIntrinsics with the resolved input images list
Diffstat (limited to 'bin')
-rwxr-xr-xbin/meshroom_photogrammetry31
1 files changed, 21 insertions, 10 deletions
diff --git a/bin/meshroom_photogrammetry b/bin/meshroom_photogrammetry
index 966c81d7..8ad506db 100755
--- a/bin/meshroom_photogrammetry
+++ b/bin/meshroom_photogrammetry
@@ -6,14 +6,14 @@ import meshroom
meshroom.setupEnvironment()
import meshroom.core.graph
-from meshroom.nodes.aliceVision.CameraInit import readSfMData
from meshroom import multiview
parser = argparse.ArgumentParser(description='Launch the full photogrammetry pipeline.')
-parser.add_argument('--input', metavar='FOLDER', type=str,
+parser.add_argument('--input', metavar='FOLDER_OR_SFM', type=str,
default='',
- help='Input folder or json file.')
+ help='Input folder with images or SfM file (.sfm, .json).')
parser.add_argument('--inputImages', metavar='IMAGES', type=str, nargs='*',
+ default=[],
help='Input images.')
parser.add_argument('--output', metavar='FOLDER', type=str, required=True,
help='Output folder.')
@@ -45,17 +45,28 @@ if not args.input and not args.inputImages:
print('Nothing to compute. You need to set --input or --inputImages.')
exit(1)
-if args.input and os.path.isfile(args.input):
- views, intrinsics = readSfMData(args.input)
- # print(views)
- # print(intrinsics)
- graph = multiview.photogrammetry(inputViewpoints=views, inputIntrinsics=intrinsics, inputImages=args.inputImages, output=args.output)
-else:
- graph = multiview.photogrammetry(inputFolder=args.input, inputImages=args.inputImages, output=args.output)
+views, intrinsics = [], []
+# Build image files list from inputImages arguments
+images = [f for f in args.inputImages if multiview.isImageFile(f)]
+
+if os.path.isdir(args.input):
+ # args.input is a folder: extend images list with images in that folder
+ images += multiview.findImageFiles(args.input)
+elif os.path.isfile(args.input) and os.path.splitext(args.input)[-1] in ('.json', '.sfm'):
+ # args.input is a sfmData file: setup pre-calibrated views and intrinsics
+ from meshroom.nodes.aliceVision.CameraInit import readSfMData
+ views, intrinsics = readSfMData(args.input)
+
+graph = multiview.photogrammetry(inputViewpoints=views, inputIntrinsics=intrinsics, output=args.output)
graph.findNode('DepthMap_1').downscale.value = args.scale
+cameraInit = graph.findNode('CameraInit')
+views, intrinsics = cameraInit.nodeDesc.buildIntrinsics(cameraInit, images)
+cameraInit.viewpoints.value = views
+cameraInit.intrinsics.value = intrinsics
+
if args.save:
graph.save(args.save)
print('File successfully saved:', args.save)