Meshroom/meshroom/nodes/aliceVision/CameraCalibration.py
2024-09-16 17:50:54 +02:00

129 lines
4.1 KiB
Python

__version__ = "1.0"
from meshroom.core import desc
from meshroom.core.utils import VERBOSE_LEVEL
class CameraCalibration(desc.AVCommandLineNode):
commandLine = 'aliceVision_cameraCalibration {allParams}'
category = 'Utils'
documentation = '''
'''
inputs = [
desc.File(
name="input",
label="Input",
description="Input images in one of the following form:\n"
" - folder containing images.\n"
" - image sequence like \"/path/to/seq.@.jpg\".\n"
" - video file.",
value="",
),
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"],
),
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),
),
desc.IntParam(
name="height",
label="Height",
description="",
value=5,
range=(0, 10000, 1),
),
],
),
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),
),
desc.IntParam(
name="nbDistortionCoef",
label="Nb Distortion Coef",
description="Number of distortion coefficients.",
value=3,
range=(0, 5, 1),
),
desc.IntParam(
name="maxFrames",
label="Max Frames",
description="Maximum number of frames to extract from the video file.",
value=0,
range=(0, 5, 1),
),
desc.IntParam(
name="maxCalibFrames",
label="Max Calib Frames",
description="Maximum number of frames to use to calibrate from the selected frames.",
value=100,
range=(0, 1000, 1),
),
desc.IntParam(
name="calibGridSize",
label="Calib Grid Size",
description="Define the number of cells per edge.",
value=10,
range=(0, 50, 1),
),
desc.IntParam(
name="minInputFrames",
label="Min Input Frames",
description="Minimum number of frames to limit the refinement loop.",
value=10,
range=(0, 100, 1),
),
desc.FloatParam(
name="maxTotalAvgErr",
label="Max Total Avg Err",
description="Maximum total average error.",
value=0.10000000000000001,
range=(0.0, 1.0, 0.01),
),
desc.File(
name="debugRejectedImgFolder",
label="Debug Rejected Img Folder",
description="Folder to export images that were deleted during the refinement loop.",
value="",
),
desc.File(
name="debugSelectedImgFolder",
label="Debug Selected Img Folder",
description="Folder to export debug images.",
value="",
),
desc.ChoiceParam(
name="verboseLevel",
label="Verbose Level",
description="Verbosity level (fatal, error, warning, info, debug, trace).",
values=VERBOSE_LEVEL,
value="info",
),
]
outputs = [
desc.File(
name="output",
label="Output",
description="Output filename for intrinsic [and extrinsic] parameters.",
value=desc.Node.internalFolder + "/cameraCalibration.cal",
),
]