拉普拉斯图像金字塔

拉普拉斯图像金字塔
从输入图像计算拉普拉斯图像金字塔。
该视觉函数根据输入图像创建拉普拉斯图像金字塔。首先,创建具有比例属性VX_scale_pyramid_HALF和等于N+1的级数的高斯金字塔,其中N是拉普拉斯金字塔中的级数。高斯金字塔计算的边界模式应为VX_border_REPLICATE。然后,对于每个i=0…N-1,拉普拉斯水平 计算公式为:
:: [eq]#L~i~ = G~i~ - UpSample(G~i+1~)#.
这里 是高斯金字塔的第i级。
UpSample(I)是通过注入为零的行和列来计算的,然后将结果与乘以4的高斯5×5滤波器卷积,如式(2-32)和(2-33)所示。

 ,(2-32)

 ,(2-33)

应始终具有与输入图像相同的分辨率。输出图像等于 。
UpSample 计算的边框模式应为VX_BORDER_REPLICATE
2.枚举
vx_comp_metric_e
比较指标。
enum vx_comp_metric_e {
    VX_COMPARE_HAMMING = VX_ENUM_BASE( VX_ID_KHRONOS, VX_ENUM_COMP_METRIC ) + 0x0,
    VX_COMPARE_L1 = VX_ENUM_BASE( VX_ID_KHRONOS, VX_ENUM_COMP_METRIC ) + 0x1,
    VX_COMPARE_L2 = VX_ENUM_BASE( VX_ID_KHRONOS, VX_ENUM_COMP_METRIC ) + 0x2,
    VX_COMPARE_CCORR = VX_ENUM_BASE( VX_ID_KHRONOS, VX_ENUM_COMP_METRIC ) + 0x3,
    VX_COMPARE_L2_NORM = VX_ENUM_BASE( VX_ID_KHRONOS, VX_ENUM_COMP_METRIC ) + 0x4,
    VX_COMPARE_CCORR_NORM = VX_ENUM_BASE( VX_ID_KHRONOS, VX_ENUM_COMP_METRIC ) + 0x5,
};
在下面的所有方程中,w和h分别是模板图像的宽度和高度。R是比较映射。T是模板图像。这是搜索模板的图像。
枚举器
VX_COMPARE_HAMMING- 汉明距离

 ,(2-34)

VX_COMPARE_L1- L1距离

 ,(2-35)

VX_COMPARE_L2- L2距离,按图像大小归一化

 ,(2-36)

VX_COMPARE_CCORR- 互相关距离

 ,(2-37)

VX_COMPARE_L2_NORM- L2归一化距离

 ,(2-38)

VX_COMPARE_CCORR_NORM- 互相关归一化距离

 ,(2-39)

 
3.3.36最小值、最大位置值
查找图像中的最小值和最大值以及每个值的位置。
如果输入图像具有多个最小值/最大值,则内核返回,如式(2-40)所示。

 ,(2-40)

3.3.38非最大值抑制
非极大值抑制
在图像中找到局部最大值,或者以其他方式抑制,不是局部最大值的像素。
非最大抑制器的输入是VX_DF_IMAGE_U8或VX_DF_IMAGE_S16图像。在VX_DF_IMAGE_S16图像时,抑制像素的值应为INT16_MIN。
可选的掩模图像,可以用于将抑制限制到感兴趣的区域。如果掩码像素为非零,则输入中的相关像素被完全忽略,并且在抑制期间不被考虑;也就是说,它不被抑制并且不被视为任何抑制窗口的一部分。
具有坐标(x,y)的像素被保持,当且仅当其大于或等于其左上邻居;并且大于其右下邻居。例如,对于窗口大小为3的情况,如果以下条件成立,则保留P(x,y)如式(2-41)所示。

 ,(2-41)

3.3.39光流金字塔(LK)
使用Lucas Kanade方法计算两个金字塔图像之间的光流。
该函数是算法的实现。函数输入是两个vx_pyramid对象,旧的和新的,以及要从旧的vx_pyramid跟踪的,vx_keypoint_t结构的vx_array。棱锥体新旧棱锥体,必须具有相同的维度。必须支持VX_SCALE_PYRAMID_HALF金字塔缩放。
该函数输出vx_keypoint_t结构的vx_array,这些结构从旧的vx_pyramid,跟踪到新的vx_piramid。新阵列中的vx_keypoint_t结构的vx_array中,每个元素可能有效也可能无效。实现应在新vx_array中返回与旧vx_array中,相同数量的vx_keypoint_t结构。
更详细地说:Lucas Kanade方法,使用以下方程为旧图像跟踪点阵列中的每个点,找到仿射运动矢量V,如式(2-42)所示。

 ,(2-42)

其中 和 是使用输入图像上的Scharr梯度获得的,如式(2-43)所示。

 ,(2-43)

 是通过两个图像中相同像素之间的简单差异获得的。

 被定义为与所考虑的点

 相邻的像素。对于给定的窗口大小

 ,

 是

 个点。像素

 位于窗口的中心。在实践中,为了获得准确的解,有必要对该方案进行多次迭代(以牛顿-拉夫森方式),直到:

仿射运动矢量的残差小于阈值和/或实现的最大迭代次数。
每次迭代,通过将其更改为旧图像和新图像中具有估计坐标的像素之间的差来使用上一次迭代的估计。每次迭代,函数都会检查要跟踪的像素是否丢失。丢失跟踪的标准是上面的矩阵是可逆的。(矩阵的行列式小于阈值:

 )或者矩阵的最小特征值小于阈值(

 )。当点跟踪坐标在图像坐标之外时,也会发生丢失跟踪。当给出vx_true_e作为use_initial_asseries的输入时,该算法首先将其计算为旧图像和新图像中,具有初始估计坐标的像素之间的差。tracking_status设置为零(丢失)的vx_keypoint_t结构的输入vx_array,被复制到新的vx_array。

客户端负责编辑vx_keypoint_t structs数组的输出vx_array,然后将其用作下一帧的vx_keypoint_t struct的输入vx_arrays。例如,为了提高效率,客户端可以移除tracking_status设置为零的vx_keypoint_t结构。
此函数仅更改vx_keypoint_t结构的x、y和tracking_status成员,其行为就好像它将剩余部分,从旧的跟踪vx_keypoint_t复制到新的图像vx_keypoint _t。
posted @ 2024-07-18 17:56  吴建明wujianming  阅读(5)  评论(0编辑  收藏  举报