求教openCV视频图像测距的算法
各位大牛好,最近要做个视频图像测距的项目,由于刚刚接触openCV,没找到合适的算法。
近距离测距,摄像机到被测点的距离是10cm左右,图像上,其中有一个模块,是不动的,也就是参照物,另外一个模块,是移动的,左右偏移分别不超过3cm,要测量左右偏移的距离。
大致思路是这样,我通过边缘检测算法,标定两个矩形框,然后,想办法,找到两个矩形框的中心线,求这两个中心线之间的距离,精度精确到0.1mm。
请问,如何找到两个矩形的中心线,并测量两条线之间的距离呢?
是根据每一个格的像素值计算吗?
谢谢大家。。
[解决办法]
很想给你提示 但我也刚接触到OpenCV 无能为力啊 实在抱歉!!!
[解决办法]
这两个模块和背景是否容易分离开呢?
如果可以分离开,直接将两个物体和背景二值化,分别计算两个物体的中心(Opencv提供有这样的函数),计算两个重心间的距离。
比知道对不对。。。
[解决办法]
重心知道了,中心线就是一条过重心的线。就好求了
[解决办法]
如果相机跟被拍摄物体不垂直,或者,参考物体跟被测物体不在同一个平面,就可能需要做相机标定。
[解决办法]
我曾经用matlab给人弄过一个测量零件尺寸的工程,
你先做一次标定,就是一个像素=多少实际距离,作为转换比率
然后就是图像处理方法了,分割得到了标准块和滑动块,求得重心,计算后转换就行了
[解决办法]
图像测距方面,标定是重中之重,一定要重视。
另外,在获得了连个物体的二值图像之后,利用形心或者中心测距会比单纯的像素测距的鲁棒性好。