Meshroom/meshroom/nodes/aliceVision/CameraCalibration.py
Yann Lanthony 346277629a [nodes] use 'desc.Node.internalFolder' in outputs values
* avoid duplicating the same string everywhere
* don't override 'internalFolder' with the same value default value in subclasses
2018-07-19 13:50:45 +02:00

126 lines
4 KiB
Python

import sys
from meshroom.core import desc
class CameraCalibration(desc.CommandLineNode):
commandLine = 'aliceVision_cameraCalibration {allParams}'
inputs = [
desc.File(
name='input',
label='Input',
description='''Input images in one of the following form:
- folder containing images
- image sequence like "/path/to/seq.@.jpg"
- video file''',
value='',
uid=[0],
),
desc.ChoiceParam(
name='pattern',
label='Pattern',
description='''Type of pattern (CHESSBOARD, CIRCLES, ASYMMETRIC_CIRCLES, ASYMMETRIC_CCTAG).''',
value='CHESSBOARD',
values=['CHESSBOARD', 'CIRCLES', 'ASYMMETRIC_CIRCLES', 'ASYMMETRIC_CCTAG'],
exclusive=True,
uid=[0],
),
desc.GroupAttribute(name="size", label="Size", description="Number of inner corners per one of board dimension like W H.", groupDesc=[
desc.IntParam(
name='width',
label='Width',
description='',
value=7,
range=(0, 10000, 1),
uid=[0],
),
desc.IntParam(
name='height',
label='Height',
description='',
value=5,
range=(0, 10000, 1),
uid=[0],
),
]),
desc.FloatParam(
name='squareSize',
label='Square Size',
description='''Size of the grid's square cells (mm).''',
value=1.0,
range=(0.0, 100.0, 1.0),
uid=[0],
),
desc.IntParam(
name='nbDistortionCoef',
label='Nb Distortion Coef',
description='''Number of distortion coefficient.''',
value=3,
range=(0, 5, 1),
uid=[0],
),
desc.IntParam(
name='maxFrames',
label='Max Frames',
description='''Maximal number of frames to extract from the video file.''',
value=0,
range=(0, 5, 1),
uid=[0],
),
desc.IntParam(
name='maxCalibFrames',
label='Max Calib Frames',
description='''Maximal number of frames to use to calibrate from the selected frames.''',
value=100,
range=(0, 1000, 1),
uid=[0],
),
desc.IntParam(
name='calibGridSize',
label='Calib Grid Size',
description='''Define the number of cells per edge.''',
value=10,
range=(0, 50, 1),
uid=[0],
),
desc.IntParam(
name='minInputFrames',
label='Min Input Frames',
description='''Minimal number of frames to limit the refinement loop.''',
value=10,
range=(0, 100, 1),
uid=[0],
),
desc.FloatParam(
name='maxTotalAvgErr',
label='Max Total Avg Err',
description='''Max Total Average Error.''',
value=0.10000000000000001,
range=(0.0, 1.0, 0.01),
uid=[0],
),
desc.File(
name='debugRejectedImgFolder',
label='Debug Rejected Img Folder',
description='''Folder to export delete images during the refinement loop.''',
value='',
uid=[0],
),
desc.File(
name='debugSelectedImgFolder',
label='Debug Selected Img Folder',
description='''Folder to export debug images.''',
value='',
uid=[0],
),
]
outputs = [
desc.File(
name='output',
label='Output',
description='''Output filename for intrinsic [and extrinsic] parameters.''',
value=desc.Node.internalFolder + '/cameraCalibration.cal',
uid=[],
),
]