函数:
图像光流计算,主要算子optical_flow_mg计算光流,计算向量场长度并获取区域内的最大最小灰度值,通过灰度值获取光流方向并处理显示
算子:
1.optical_flow_mg(ImageT1, ImageT2 : VectorField : Algorithm, SmoothingSigma, IntegrationSigma, FlowSmoothness, GradientConstancy, MGParamName, MGParamValue : ):计算两幅图像的光流。3D运动在二维图像平面上的投影称为光流
参数:
ImageT1:输入图像1
ImageT2 :输入图像2
VectorField :输出光流
Algorithm:计算光流的算法('fdrig':采用了Brox, Bruhn, Papenberg, 和Weickert提出的方法。该方法是流驱动的,鲁棒的,各向同性的,并使用梯度恒定项。 'ddraw':使用了Nagel 和Enkelmann提出的方法的一个鲁棒变体。这种方法是数据驱动的、健壮的、各向异性的,并使用了翘曲。 'clg' : Bruhn, Weickert, Feddern, Kohlberger, 和Schn?rr 提出的局部-全局联合方法)
SmoothingSigma:初始高斯平滑的标准偏差
IntegrationSigma:集成滤波器的标准差(该参数只在clg算法中使用,对其他两个算法没有影响)
FlowSmoothness:平滑项相对于数据项的权重
GradientConstancy:梯度恒常性相对于灰度值恒常性的权重(该参数只在fdrig算法中使用,对于其他两个算法,它不影响结果)
MGParamName:多重网格算法的参数名('warp_zoom_factor' :可用于指定在粗到系的整经层次结构中两个连续整经级别之间的分辨率。 'warp_levels' :可用于将扭曲层次结构限制为最大级别数。当值为0时,将使用尽可能多的级别。'warp_last_level' :可用于指定不在计算流增量的扭曲级别的数量。前面三个参数只在fdrig和ddraw算法中使用。)
MGParamValue :多重网格算法的参数值
2.vector_field_length(VectorField : Length : Mode : ):计算向量场的向量的长度
参数Mode:可用于指定长度的计算方式。'length':计算向量的欧氏长度。'squared_length':计算向量长度的平方。
3.min_max_gray(Regions, Image : : Percent : Min, Max, Range):计算区域内的最小和最大灰度值
参数:
Regions:输入区域
Image :输入图像
Percent :低于(高于)绝对最大值的百分比
Min:最小灰度值
Max:最大灰度值
Range:最小与最大值的差
该算子先统计区域内图像的灰度直方图,即在0-255灰度值范围内图像像素个数的分布频率图。区域面积*Percent得到一个数a,用a分别从0处和255处向内截取a个像素,然后在剩余像素点内获取最大最小值。
4.vector_field_to_real(VectorField : Row, Col : : ):将一个向量场转换成两个实值图像。输出图像分别包含行方向和列方向的向量分量