相关疑难解决方法(0)

寻找从相机到已知大小的物体的距离

我正在尝试使用opencv编写程序来计算从网络摄像头到1英寸白色球体的距离.我觉得这应该很容易,但无论出于何种原因,我都是空白.谢谢你的帮助提前.

webcam opencv object-recognition

14
推荐指数
1
解决办法
3万
查看次数

计算距离(差异)OpenCV

- 更新2 -

如果您使用单个摄像头计算距离,以下文章非常有用(尽管它使用的是Python而不是C++):使用Python和OpenCV查找从摄像机到对象/标记的距离

最佳链接 Stereo Webcam Depth Detection.这个开源项目的实施非常清楚.

以下是原始问题.


对于我的项目,我使用两个摄像头(立体视觉)来跟踪物体并计算距离.我用OpenCV的示例代码校准它们并生成视差图.

我已经实现了一种基于颜色跟踪对​​象的方法(这会生成一个阈值图像).

我的问题:如何使用视差图/矩阵计算到跟踪彩色物体的距离?

您可以在下面找到获取每个像素的x,y和z坐标的代码段.问题是:Point.z是cm,像素,mm?

我可以使用此代码获取跟踪对象的距离吗?

先感谢您!

cvReprojectImageTo3D(disparity, Image3D, _Q);

vector<CvPoint3D32f> PointArray;
CvPoint3D32f Point;

for (int y = 0; y < Image3D->rows; y++) {    

    float *data = (float *)(Image3D->data.ptr + y * Image3D->step);  

    for (int x = 0; x < Image3D->cols * 3; x = x + 3) 
    {   
        Point.x = data[x];        
        Point.y =  data[x+1];     
        Point.z = data[x+2];
        PointArray.push_back(Point);
        //Depth > 10
        if(Point.z > 10)
        {
            printf("%f %f …
Run Code Online (Sandbox Code Playgroud)

opencv distance vision disparity-mapping stereoscopy

6
推荐指数
1
解决办法
1万
查看次数