mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-07-26 21:17:29 +02:00
98 lines
3.6 KiB
Python
98 lines
3.6 KiB
Python
__version__ = "1.1"
|
|
|
|
import json
|
|
import os
|
|
|
|
from meshroom.core import desc
|
|
from meshroom.core.utils import COLORSPACES, EXR_STORAGE_DATA_TYPE, VERBOSE_LEVEL
|
|
|
|
|
|
class PanoramaWarping(desc.AVCommandLineNode):
|
|
commandLine = 'aliceVision_panoramaWarping {allParams}'
|
|
size = desc.DynamicNodeSize('input')
|
|
parallelization = desc.Parallelization(blockSize=5)
|
|
commandLineRange = '--rangeStart {rangeStart} --rangeSize {rangeBlockSize}'
|
|
|
|
category = 'Panorama HDR'
|
|
documentation = '''
|
|
Compute the image warping for each input image in the panorama coordinate system.
|
|
'''
|
|
|
|
inputs = [
|
|
desc.File(
|
|
name="input",
|
|
label="SfMData",
|
|
description="Input SfMData file.",
|
|
value="",
|
|
),
|
|
desc.BoolParam(
|
|
name="estimateResolution",
|
|
label="Estimate Resolution",
|
|
description="Estimate output panorama resolution automatically based on the resolution of input images.",
|
|
value=True,
|
|
group=None, # skip group from command line
|
|
),
|
|
desc.IntParam(
|
|
name="panoramaWidth",
|
|
label="Panorama Width",
|
|
description="Choose the output panorama width (in pixels).",
|
|
value=10000,
|
|
range=(0, 50000, 1000),
|
|
enabled=lambda node: (not node.estimateResolution.value),
|
|
),
|
|
desc.IntParam(
|
|
name="percentUpscale",
|
|
label="Upscale Ratio",
|
|
description="Percentage of upscaled pixels.\n"
|
|
"\n"
|
|
"How many percent of the pixels will be upscaled (compared to its original resolution):\n"
|
|
" - 0: all pixels will be downscaled.\n"
|
|
" - 50: on average, the input resolution is kept (optimal to reduce over/under-sampling).\n"
|
|
" - 100: all pixels will be upscaled.\n",
|
|
value=50,
|
|
range=(0, 100, 1),
|
|
enabled=lambda node: (node.estimateResolution.value),
|
|
),
|
|
desc.IntParam(
|
|
name="maxPanoramaWidth",
|
|
label="Max Panorama Width",
|
|
description="Choose the maximum width for the output panorama (in pixels). 0 means no limit.",
|
|
value=70000,
|
|
range=(0, 100000, 1000),
|
|
enabled=lambda node: (node.estimateResolution.value),
|
|
),
|
|
desc.ChoiceParam(
|
|
name="workingColorSpace",
|
|
label="Working Color Space",
|
|
description="Colorspace in which the panorama warping will be performed.",
|
|
values=COLORSPACES,
|
|
value="Linear",
|
|
),
|
|
desc.ChoiceParam(
|
|
name="storageDataType",
|
|
label="Storage Data Type",
|
|
description="Storage image data type:\n"
|
|
" - float: Use full floating point (32 bits per channel).\n"
|
|
" - half: Use half float (16 bits per channel).\n"
|
|
" - halfFinite: Use half float, but clamp values to avoid non-finite values.\n"
|
|
" - auto: Use half float if all values can fit, else use full float.",
|
|
values=EXR_STORAGE_DATA_TYPE,
|
|
value="float",
|
|
),
|
|
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="Folder",
|
|
description="Output folder.",
|
|
value=desc.Node.internalFolder,
|
|
),
|
|
]
|