镜头变形
LensDistortion节点(NukeX和Nuke Studio仅)通过网格检测或手动线检测来估计给定图像中的镜头畸变。然后,可以使用扭曲来添加或消除扭曲,或者在扭曲中生成STMap。 motion在其他地方使用的渠道。
注意: 您必须在以下位置执行分析NukeX要么Nuke Studio,但您可以在中使用结果Nuke。
输入和控制
连接类型 |
连接名称 |
功能 |
输入值 |
资源 |
要扭曲的图像序列。 |
Control (UI) |
Knob (Scripting) |
Default Value |
功能 |
LensDistortion Tab |
|||
Local GPU |
gpuName |
N/A |
在以下情况下显示用于渲染的GPU Use GPU if available已启用。本地GPU显示Not available什么时候: • Use CPU被选为default blink device在里面Preferences。 • 在您的系统上找不到合适的GPU。 • 无法创建用于在所选GPU上处理的上下文,例如GPU上没有足够的可用内存时。 您可以通过导航到Preferences并从default blink device落下。 注意: 选择其他GPU要求您重新启动Nuke在更改生效之前。 |
Use GPU if available |
useGPUIfAvailable |
enabled |
启用后,将在Local GPU指定(如果有),而不是CPU。 注意: 如果在没有本地GPU的情况下启用此选项,则只要在具有可用GPU的计算机上打开脚本,脚本就可以在GPU上运行。
|
Model Preset |
distortionModelPreset |
NukeX Classic |
设置要使用的失真模型,并添加或删除Distortion Parameter根据所选的预设进行控制: • NukeX Classic -使用旧版的失真模型Nuke。 • CaraVR Radial, Degree 3 -使用适用于CaraVR的失真模型。 • 3DEqualizer -提供几种适用于3DE的变形模型。 • Custom -允许您从头开始自定义失真模型。 |
Lens Type |
lens |
Spherical |
设置用于拍摄连拍的镜头类型: • Spherical • Anamorphic |
Anamorphic Parameters - These controls are only displayed when the Lens Type control is set to Anamorphic. |
|||
Squeeze |
anamorphicSqueeze |
1 |
设置用于重新缩放比例的变形挤压x的系数Distortion Parameters。 |
Twist |
anamorphicTwist |
0 |
补偿镜头扭曲(以度为单位)。 |
Scale x,y |
anamorphicScale |
1,1 |
补偿镜头呼吸,改变焦距时焦距略有变化。 |
Distortion Parameters - these controls are dependent on the distortion Model Preset applied. |
|||
Denominator s |
distortionDenominator0 |
0 |
设置失真模型的对称系数的分母系数。 这些控件链接到同名控件上。 Advanced标签。 |
distortionDenominator1 |
0 |
||
Centre |
centre |
0,0 |
设置变形中心的位置。 |
Output |
|||
Mode |
output |
Undistort |
设置节点的输出类型: • STMap -呈现非扭曲和重新扭曲的STMap。 motion渠道。使用forward不失真的通道backward重新分配的渠道。其他输入通道直接复制到输出。在这种模式下,覆盖网格可以显示在源图像的顶部。 • Undistort -直接在查看器中取消输入的失真,从而可视化未失真的叠加网格。 • Redistort -直接在查看器中重新排列输入,从而可视化重新排列的叠加网格。 |
Use Fisheye |
useFisheye |
enabled |
启用后,在将鱼眼镜头翘曲时,镜头投影被视为变形的一部分。 停用后, Nuke在不失真时渲染“理想”鱼眼镜头而不会变形,在重新扭曲时将其应用于鱼眼镜头图像。 注意: 此控件对Rectilinear镜头。 |
Filter |
filter |
Cubic |
什么时候Mode设定为Undistort要么Redistort,设置将像素从其原始位置重新映射到新位置时要使用的图像重采样滤镜。这样可以避免图像质量出现问题,特别是在帧的高对比度区域(如果不对像素进行过滤并保留其原始值,则可能会出现高度混叠或锯齿状的边缘)。 • Impulse -重新映射的像素保留其原始值。 • Cubic -重新映射的像素会有些平滑。 • Keys -重新映射的像素会得到一些平滑,再加上一点锐化(如曲线的负-y部分所示)。 • Simon -重新映射的像素会得到一些平滑,再加上中等的锐化(如曲线的负-y部分所示)。 • Rifman -重新映射的像素会得到一些平滑,再加上明显的锐化(如曲线的负-y部分所示)。 • Mitchell -重新映射的像素会进行一些平滑处理,再加上模糊处理以隐藏像素化。 • Parzen -重新映射的像素在所有滤镜中获得最大的平滑度。 • Notch -重新映射的像素会得到平滑平滑(这往往会掩盖波纹)。 • Lanczos4, Lanczos6和Sinc4 -重新映射的像素会锐化,这对于缩小图像很有用。Lanczos4提供最少的锐化和Sinc4最多。 |
BBox |
bboxType |
Auto |
设置边界框的计算方式: • Auto -边界框是自动设置的,如果边界远大于图像,则会导致性能下降。 • Input -将边界框设置为与输入图像相同的尺寸。 • Manual -允许您使用outputBBox控件手动设置边界。 |
outputBBox |
dependent on Compositing environment Project Settings |
When BBox is set to Manual, adjust the BBox by entering values in the x, y, r, and t controls. You can also use the crop widget in the Viewer to adjust the BBox. |
|
Output Format
|
outputFormatType |
Input |
设置输出格式: • Input -输出格式与输入格式相同。 • Format -输出格式由格式下拉列表控制。 • BBox -输出格式与边界框相同。 |
format |
dependent on Compositing environment Project Settings |
Sets the output format to use when Output Format is set to Format. |
|
Distortion Scaling
|
distortionScalingType |
Scale to Input Format |
设置重缩放模式: • Scale to Input Format -使用输入格式来缩放输出中的失真。 • Format -使用选定的格式缩放输出。 |
outputFormat |
dependent on Compositing environment Project Settings |
Sets the format to use to reformat the image when Distortion Scaling is set to Format. |
|
Analysis Tab |
|||
Grid Detect |
|||
Detect |
detect |
N/A |
单击以在所有关键帧上运行选定的检测方法,以进行校准网格快照。 网格检测包括特征检测和特征链接。它可以一步一步运行,使用Grids检测或分为两个步骤以进行手动更正。 看到Grid Detection控件以获取有关更改检测参数的更多信息。 |
N/A |
detectionFrameType |
Current Frame |
设置由Detect按钮: • Current Frame -仅检测当前帧上的网格。 • Every N Frames -在当前帧以及之后的每N帧中检测网格。N由右侧的控件指定。 |
Preview |
preview |
disabled |
您可以启用Preview控件,以查看单击LensDistortion节点时可能找到的功能Detect按钮。 您可以在Settings下拉菜单以改善结果,然后单击Detect。 |
Settings |
|||
Number of Features |
numFeatures |
5000 |
设置检测到的特征的最大数量。 您可以尝试增加Number of Features如果特征点未完全覆盖网格。 |
Patch Size |
patchSize |
9 |
设置特征重新定位的补丁大小。 尝试增加Patch Size如果要素不一致地位于鞍点上。 |
Feature Separation |
featureSeparation |
15 |
设置要素相对于彼此的分布。 该值应反映网格的正方形元素的比例。 |
Detection Threshold |
detectionThreshold |
100 |
设置自动拒绝功能的检测阈值。 您可以增加该值以拒绝较弱的特征,例如不在网格上的点。 |
Feature Linking |
|||
Angle Threshold |
angleThreshold |
8 |
设置链接相邻要素时的角度公差。 如果发现相邻要素之间缺少太多链接,请尝试增加此值。 较高的值会在链接过程中引入歧义,因此请调整Angle Threshold以获得网格的最佳覆盖范围。 |
Distance Threshold |
distanceThreshold |
30 |
设置合并相邻链接时允许的距离公差。 您可以增加Distance Threshold检测后恢复丢失的特征点。 |
Peak Threshold |
peakThreshold |
20 |
设置检测链接方向时的峰值公差。 您可以减少Peak Threshold如果网格图像没有足够的对比度,则可以改进特征链接。 |
Editing and Drawing |
|||
|
lineDrawingModeSelectAll |
N/A |
单击以启用通用选择工具。 |
|
lineDrawingModeSelectFeatures |
N/A |
单击以启用功能选择工具。 |
|
lineDrawingModeSelectLines |
N/A |
单击以启用线选择工具。 |
|
lineDrawingModeAddFeatures |
N/A |
单击以启用添加功能工具。 |
|
lineDrawingModeRemoveFeatures |
N/A |
单击以启用删除功能工具。 |
|
lineDrawingModeAddLines |
N/A |
单击以启用线条绘制工具。 |
Solve |
|||
Keys |
N/A |
1 |
显示当前关键帧编号。 |
N/A |
1 |
Displays the total number of keyframes. |
|
|
N/A |
N/A |
单击以跳到上一个关键帧。 |
|
N/A |
N/A |
单击以跳到下一个关键帧。 |
|
N/A |
N/A |
单击以在序列中的当前帧处添加关键帧。 |
|
N/A |
N/A |
单击以删除序列中当前帧的关键帧。 |
|
N/A |
N/A |
单击以删除序列中的所有关键帧。 |
Solve |
solveDistortion |
N/A |
单击以使用检测到的网格估计失真模型参数。 求解器尝试将变形的链接扭曲为直线。 注意: 解决变形模型至少需要与变形模型中的参数一样多的特征链接。如果Detect方法找不到足够的链接,请尝试添加更多关键帧或调整检测参数。 |
Reject |
deleteOutliers |
N/A |
单击以拒绝剩余错误不在错误之外的链接Threshold。 您可以删除覆盖图中红色标记的异常值,然后单击Solve通过细化变形来再次改善结果。 您也可以通过选择链接并按Delete要么Backspace键盘快捷键。保持Ctrl/Cmd而删除链接只会保留选定的链接。 |
Reset |
resetDistortion |
|
重置变形参数并求解状态。删除的功能和链接不会恢复。 |
Solve Error |
solveError |
0 |
以像素为单位显示均方根(RMS)求解误差。 这可以用来衡量解决方案的质量。它被计算为每个链接与理想直线的平均偏差。将鼠标移到链接上可以显示其单个残留错误。 |
Threshold |
errorThreshold |
10 |
设置异常值拒绝的错误阈值。 较低的值可以产生更紧密的拟合,但是存在过度拟合的风险。异常值过多可能表明所选失真模型存在问题。 |
Overlay |
|||
Show |
overlayType |
All |
选择要在叠加层中显示的内容: • None -禁用覆盖。 • Features -仅显示检测到的特征点。在此模式下只能编辑功能。删除功能不会删除任何关联的链接。 • Links -仅显示特征点之间的链接。在此模式下,仅链接是可编辑的。删除链接不会删除其连接的功能。 • All -显示特征点和链接。选择此选项后,可以同时编辑两种类型。 |
Advanced Tab |
|||
Fisheye |
|||
Projection Model |
projection |
None (Rectilinear) |
设置投影类型None (Rectilnear)要么Fisheye。Fisheye提供了几种子类型: • Stereographic • Equidistant • Equisolid • Orthographic |
Focal Length |
focal |
9 |
设置相机焦距(以毫米为单位)。 |
Sensor Size x,y |
sensorSize |
36,24 |
设置相机传感器的尺寸(毫米)。 |
Beam Splitter |
|||
Enable |
enableBeamSplitter |
disabled |
启用后, Direction和Bending启用控件来管理使用分束器创建的图像。 |
Direction |
beamSplitterDirection |
0 |
控制分束器的圆柱方向和弯曲。 |
Bending |
beamSplitterBending |
0 |
|
Distortion |
|||
Type |
distortionModelType |
Radial Standard |
设置失真模型类型,尽管选择Preset适当更改选择: • Radial Standard • Radial Asymmetric • Radial-Tangential (耦合或非耦合) |
Order |
distortionOrder |
0,2 |
设置径向变形的有理多项式函数的阶数。 第一项控制分子顺序,第二项控制分母顺序。 注意: 默认值(0,2)对应于旧版NukeX模型。 |
Exponent |
distortionExponent |
2,2 |
设置径向变形多项式的基本指数。 第一项控制分子指数,第二项控制分母指数。 注意: 分母的基本指数为2对应于经典NukeX模型。 |
Direction |
distortionModelDirection |
Forward |
设置变形模型方向: • Forward -直接估算,但需要反转以进行图像渲染。 的NukeX Classic模型是一个例子Forward模型。 • Backward -使用其逆估计,但可以直接用于图像渲染。模型反演不是一个精确的过程,可能会由于近似而导致信息丢失。 的CaraVR Radial模型是一个例子Backward模型。 |
Normalisation |
normalisationType |
Maximum |
设置焦距和失真参数的标准化方式: • Width • Height • Diagonal • Maximum |
Distort in Fisheye Space |
distortInFisheyeSpace |
enabled (if a fisheye Projection Model is selected) |
当。。。的时候Project Model设定为Fisheye,此控件确定是去除还是应用鱼眼或直线空间中的畸变,即在“去除鱼眼镜”之前或之后。 |
Equation x |
distortionModelDisplayX |
xu = xd / (1 + k0 * rd^2 + k1 * rd^4) |
失真模型方程式显示。 图例:(xd,yd)是变形的笛卡尔坐标,(rd,phid)是变形的极坐标,(xu,yu)是未变形的笛卡尔坐标,(ru,phiu)是未变形的极坐标,并且k-值是失真系数。坐标系相对于变形中心。 |
Equation y |
distortionModelDisplayY |
yu = yd / (1 + k0 * rd^2 + k1 * rd^4) |
失真模型方程式显示。 图例:(xd,yd)是变形的笛卡尔坐标,(rd,phid)是变形的极坐标,(xu,yu)是未变形的笛卡尔坐标,(ru,phiu)是未变形的极坐标,并且k-值是失真系数。坐标系相对于变形中心。 |
The denominator and numerator controls are dependent on the distortion Model Preset applied on the LenDistortion tab. |
|||
Denominator s |
distortionDenominator0Link |
0 |
设置失真模型的对称系数的分母系数。 这些控件链接到同名控件上。 LenDistortion标签。 |
distortionDenominator1Link |
0 |
||
Numerator s |
distortionNumerator0 |
0 |
为变形模型的对称系数设置分子系数。 这些控件链接到同名控件上。 LensDistortion标签。 |
distortionNumerator1 |
0 |
||
Centre |
centreLink |
0,0 |
设置变形中心的位置。 此控件链接到同名控件上。 LenDistortion标签。 |
Python Tab (These controls are for Python callbacks and can be used to have Python functions automatically called when various events happen in Nuke.) |
|||
before render |
beforeRender |
none |
这些功能会在开始渲染之前运行execute()。如果它们引发异常,则渲染异常终止。 |
before each frame |
beforeFrameRender |
none |
这些功能在开始渲染每个单独的帧之前运行。如果它们引发异常,则渲染异常终止。 |
after each frame |
afterFrameRender |
none |
这些功能在每个帧完成渲染后运行。如果渲染异常终止,则不会调用它们。如果它们引发异常,则渲染异常终止。 |
after render |
afterRender |
none |
这些功能在所有帧的渲染完成后运行。如果它们抛出错误,则渲染中止。 |
render progress |
renderProgress |
none |
这些功能在渲染过程中运行以确定进度或失败。 |