- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有几个 USB 网络摄像头(固定焦距)设置为一个简单的 stereoscopic rangefinder ,间隔 N 毫米,每个向中心线旋转 M 度,我有 calibrated the cameras以确保对齐。
调整角度时,我如何测量图像之间的重合度(最好是在 Python/PIL/OpenCV 中)以了解相机何时聚焦在物体上?是不是像在每个图像中选择一段像素(A 行 B 列)并计算像素之间的差异之和一样简单?
最佳答案
问题是您不能假设相机像素完美对齐
所以假设x
-axis 是视差偏移轴,y
- 轴对齐。您需要识别 x 轴图像失真/偏移以检测视差对齐,即使您尽可能对齐也是如此。 abs 差异的结果不保证在 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 范围,因为对齐距离是直接获得的......你只需要将它转换为角度或任何你用来对齐视差的东西
[注释]
您不需要对整个图像区域执行此操作,只需沿着图像选择几条水平线并扫描它们附近的区域即可。
还有另一种检测对齐的方法,例如对于短距离,倾斜是对齐的重要标记,因此比较相机之间物体左右两侧的高度......如果接近相同,则如果更大/较小的你没有对齐并且知道转向哪个方向......
关于python - 如何测量光学测距仪中的图像重合度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32428612/
我是一名优秀的程序员,十分优秀!