【发布时间】:2017-06-22 00:13:19
【问题描述】:
我找到了 LKT 算法here 的 Matlab 实现,它基于亮度恒常性方程。
该算法通过将图像与适当的 2x2 水平和垂直边缘梯度算子进行卷积来计算 x 和 y 方向的图像梯度。
经典文献中的亮度恒常方程的右侧是两个连续帧之间的差异。
但是,在上述链接所指的实现中,右手边是卷积的区别。
It_m = conv2(im1,[1,1;1,1]) + conv2(im2,[-1,-1;-1,-1]);
It_m 为什么不能简单地计算为:
it_m = im1 - im2;
【问题讨论】:
-
您需要一分钟来验证
conv2(x,[1,1;1,1])是否与x不同。 -
你指的是这一行吗? It_m = conv2(im1, ones(2), '有效') + conv2(im2, -ones(2), '有效');请注意,这只是一个 2D 空间平滑器,并确保生成的 It_m 具有与 Ix_m 和 Iy_m 矩阵相同的大小(因为它们是使用带有 2x2 内核和“有效”选项的 conv2 处理的)。
-
@MBaz 我不认为他的困惑在于 conv2(x,[1,1;1,1]) 与 x 不同。我怀疑问题是为什么要使用该卷积,而不仅仅是在两个图像帧上逐个像素地计算时间导数。
-
@AtulIngle 你可能是对的。
-
@Raj 如果您在 StackOverflow 上使用
matlab和image processing标签发布此问题,您会收到更好的回复
标签: matlab image-processing computer-vision object-recognition