取景器对齐

时间:2011-12-17 09:40:03

标签: algorithm matlab augmented-reality motion-detection opticalflow

是否有人与Viewfinder Alignment method合作过?第一步(边缘检测)或多或少可以理解。它写成“提取边缘,我们采用四个等间隔方向的图像的平方梯度:水平,垂直和两个对角线方向。” 1 )。然后“然后我们在垂直于梯度方向的方向上执行每个梯度图像的积分投影” 2 )。对于水平方向,我用这种方式实现了算法:

function pl = horgrad(a)
[h,w] = size(a);
b = uint8(zeros(h,w));
for i = 1 : h
        for j = 2 : w
                % abs() instead of squaring
                b(i,j) = abs(a(i,j) - a(i,j-1));     % (1)
        end
end
pl = sum(b);     % (2)

对我来说真正的问题是第二步:边缘对齐。什么意思 px [i] 1 py [i] 1 pu [i] 1 pv [i] 1 < / em>的?为什么他们等于1?我的柜台如何改变?

1 个答案:

答案 0 :(得分:1)

据我所知,算法 px py pu pv 是每个4个方向。因此,代码中的 px pl。 px [i] 0是该向量中的每个点 - 代码中的pl(i)。 px [i] 1 是获得用于生成投影的总点数(归一化系数?)。因此,所有 px [i] 1 的总和将是图像高度h。对于其他方向,它是相似的。

重复我对你的问题的评论,为了获得更好的性能,你应该尽量避免循环,特别是嵌套循环,特别是当它像你的情况一样简单时:

b(:,2:end)=abs(diff(a,1,2));