我有几个USB网络摄像头(固定焦距)设置为一个简单的stereoscopic rangefinder,间隔N mm,每个都向中心线旋转了M度,我calibrated the cameras确保对齐。
调整角度时,如何测量图像之间的重合(最好是在Python / PIL / OpenCV中),以了解相机何时聚焦在物体上?是否像在每个图像中选择一部分像素(A行按B列)并计算像素之差的总和一样简单?
答案 0 :(得分:2)
问题在于你不能假设像素完美对齐相机
所以假设x
- 轴是视差移位轴,y
- 轴是对齐的。即使您尽可能对齐,也需要识别x轴图像失真/移位以检测视差对齐。绝对差异的结果不能保证在min/max
中,因此不是减去单个像素,而是减去该像素的附近区域的平均颜色,其半径/尺寸大于y-axis
中的对齐误差。以这种方式调用此半径或大小r
,在对齐时,结果差异应该最小。
近似搜索
您甚至可以通过r
r
0.25*r
x0
)r
更改为一半<x0-2.0*r,x0+2.0r>
r
小于几个像素,则这样您就可以在O(log2(n))
而不是O(n)
计算机视觉方法
这应该更快:
通过这种方式,您可以避免检查整个x范围,因为直接获得对齐距离...您只需将其转换为角度或用于对齐视差的对象
<强> [注释] 强>
您无需在整个图像区域执行此操作,只需沿图像选择几条水平线并扫描其附近区域。
还有另一种检测对齐的方法,例如对于短距离,歪斜是对齐的重要标记,因此比较相机之间左右两侧的物体高度...如果接近相同,则对齐如果更大/更小,你没有对齐,知道转向的方式......