如何测量光学测距仪中的图像重合

时间:2015-09-06 21:46:26

标签: python opencv image-processing python-imaging-library

我有几个USB网络摄像头(固定焦距)设置为一个简单的stereoscopic rangefinder,间隔N mm,每个都向中心线旋转了M度,我calibrated the cameras确保对齐。

调整角度时,如何测量图像之间的重合(最好是在Python / PIL / OpenCV中),以了解相机何时聚焦在物体上?是否像在每个图像中选择一部分像素(A行按B列)并计算像素之差的总和一样简单?

1 个答案:

答案 0 :(得分:2)

问题在于你不能假设像素完美对齐相机

所以假设x - 轴是视差移位轴,y - 轴是对齐的。即使您尽可能对齐,也需要识别x轴图像失真/移位以检测视差对齐。绝对差异的结果不能保证在min/max中,因此不是减去单个像素,而是减去该像素的附近区域的平均颜色,其半径/尺寸大于y-axis中的对齐误差。以这种方式调用此半径或大小r,在对齐时,结果差异应该最小。

近似搜索

您甚至可以通过r

加快流程
  1. 选择大r
  2. 使用步骤扫描整个x范围,例如0.25*r
  3. 选择最低差异x位置(x0
  4. r更改为一半
  5. 转到子弹2(但这次整个x范围恰好在<x0-2.0*r,x0+2.0r>
  6. 之间 如果r小于几个像素,则
  7. 停止

    这样您就可以在O(log2(n))而不是O(n)

    中进行搜索

    计算机视觉方法

    这应该更快:

    1. 检测兴趣点(在展位图像中)
      • 渐变的具体变化等......
    2. 图像之间的交叉匹配兴趣点
    3. 计算交叉匹配点之间的平均x距离
    4. 通过找到的点距离来改变视差对齐
    5. 转到子弹1直到x距离足够小
    6. 通过这种方式,您可以避免检查整个x范围,因为直接获得对齐距离...您只需将其转换为角度或用于对齐视差的对象

      <强> [注释]

      您无需在整个图像区域执行此操作,只需沿图像选择几条水平线并扫描其附近区域。

      还有另一种检测对齐的方法,例如对于短距离,歪斜是对齐的重要标记,因此比较相机之间左右两侧的物体高度...如果接近相同,则对齐如果更大/更小,你没有对齐,知道转向的方式......