OpenCV中文网站

 找回密码
 立即注册
搜索
热搜: 安装 配置
楼主: guvcolie

【代码】单目摄像机标定程序_分享

[复制链接]
 楼主| 发表于 2013-5-10 18:36:13 | 显示全部楼层

【代码】单目摄像机标定程序_分享

老师我想问下,我主要目的是双目测量一个物体的两点的距离或者两条直线的角度,对测距无要求,所以我想实现两幅图点的匹配,最后在得到匹配点的三维坐标。先是两个相机的立体标定我求出了内外参数,以及基础矩阵等等,接下来我是canny目标图的边缘再提取角点并亚像素精度,然后呢?是用提取的角点再求基本矩阵还是直接用之前的求得的基础矩阵计算cvComputeCorrespondEpilines极线,极线算出来了我又怎么办,我不需要图像匹配,我只需要通过极线实现点的匹配,最后得到点的三维信息,可是我不知道怎么用opencv怎么编极线上点的匹配,没看到相关函数,老师请指点,有程序当然是最好,没有也请把思路给我讲下
我给你提个思路,而且我也是按这个思路做的。
你尝试一下不用opencv的角点匹配函数。你先将左右原始图像处理成为左右行对准图像,利用cvRemap(),具体方法你可以参考《学习OpenCV》,然后对左目和右目图像分别求取你想要的那个标志点,这样你得到的左右目标志点肯定是处于同一行的。
然后根据视差,f,Tx就可以求出你想要的标志点的三维信息了。
回复 支持 反对

使用道具 举报

发表于 2013-5-11 22:31:17 | 显示全部楼层

【代码】单目摄像机标定程序_分享

你好,我是按照你的单目标定程序做好的单目标定,但是在你的kalman 跟踪中的代码中对于这一Left_points.xml、Right_points.xml、Counts.xml这三个文件是怎么设置的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-13 17:04:41 | 显示全部楼层

【代码】单目摄像机标定程序_分享

你好,我是按照你的单目标定程序做好的单目标定,但是在你的kalman 跟踪中的代码中对于这一Left_points.xml、Right_points.xml、Counts.xml这三个文件是怎么设置的?
如果你只是做单目标定的话,你参照我第二页的程序就可以了,第四页这个程序包含了很多其他的算法,不只是单目标定.
对于你的问题,是这样的:单目标定程序中不是会输出左点,右点和每幅图像找到的角点数量吗,你将这三个参数保存为以上三个矩阵文件中就可以了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-13 17:33:13 | 显示全部楼层

【代码】单目摄像机标定程序_分享

有源码的帖子真火啊
只是为了学习,大家一起探讨嘛
回复 支持 反对

使用道具 举报

发表于 2013-5-20 01:55:23 | 显示全部楼层

【代码】单目摄像机标定程序_分享

楼主写的代码真详细,很佩服,正在仔细拜读,我也是做目标点位姿估计的 谢谢楼主
回复 支持 反对

使用道具 举报

发表于 2013-5-20 21:09:12 | 显示全部楼层

【代码】单目摄像机标定程序_分享

您好!我主要目的是单目测量路面的两点的距离,所以我想实现两幅图点的匹配,最后利用得到匹配点移动的像素距离转化成世界坐标系下的物理距离。先是标定我求出了内外参数,以及旋转平移矩阵等等,接下来我是harris目标图的边缘再提取角点并亚像素精度,然后、用Lucas-Kanade进行匹配,计算出两幅图像间匹配点的像素移动距离,然后呢?如何重建出这两点之间的物理距离?它们之间的物理换算关系式如何的?
没看到相关函数,老师请指点,有程序当然是最好,没有也请把思路给我讲下,小妹在此谢过!
回复 支持 反对

使用道具 举报

发表于 2013-5-21 02:12:08 | 显示全部楼层

【代码】单目摄像机标定程序_分享

以下是我的一个项目,关于双目视觉求解三维空间中点的空间坐标的源代码,立体标定、立体校正、单点重映射算法、Kalman滤波器算法、求空间坐标、实时姿态等源码都在其中,我就不一一分类了,有需要的话请大家自行研究


        return 0;
}

如果有什么问题的话,欢迎大家在本帖留言
楼主,你好,大致看了一下发现你这个双目立体视觉源代码是不是复制的有些部分重复了?
回复 支持 反对

使用道具 举报

发表于 2013-5-21 02:14:24 | 显示全部楼层

【代码】单目摄像机标定程序_分享

以下是我的一个项目,关于双目视觉求解三维空间中点的空间坐标的源代码,立体标定、立体校正、单点重映射算法、Kalman滤波器算法、求空间坐标、实时姿态等源码都在其中,我就不一一分类了,有需要的话请大家自行研究


  /////////////////////////////////////
  样机完成时间2012.12.17
  13:48 pm
  作者:李吉祥
  /////////////////////////////////////
  /////////////////////////////////////
  2012.12.18
  8:27 am对代码进行嵌入Kalman滤波器优化。
  /////////////////////////////////////

               

                //下面这个if-else就是要严刑拷问“准三角形轮廓”的真身的!
                /*如果没得到“准三角形轮廓”(系统刚启动时阈值化调得不理想或者后期的的确确没找到像三角形的轮廓),那我们就没必要在图像上和控制台上显示
                坐标了!如果contour_triangle不为空但是numberOfContour大于1,说明有假冒的“三角形轮廓”混进来了,既然它混进来了,那我就也不显示坐标了!*/
                贝,退出这个循环后我再慢慢拷问它是不是真的 ╭(╯^╰)╮

                        lenght_triangle1 = tmp_lenght1;  //下面两个值要保存下来,当切入Kalman循环时这两个值会作为状态变量的初始值!

                        area_triangle1 = tmp_area1;

                }
               

                //下面这个if-else就是要严刑拷问“准三角形轮廓”的真身的!
                /*如果没得到“准三角形轮廓”(系统刚启动时阈值化调得不理想或者后期的的确确没找到像三角形的轮廓),那我们就没必要在图像上和控制台上显示
                坐标了!如果contour_triangle不为空但是numberOfContour大于1,说明有假冒的“三角形轮廓”混进来了,既然它混进来了,那我就也不显示坐标了!*/
                if ( contour_triangle1 &&  numberOfContour1 == 1 ){  



        return 0;
}


如果有什么问题的话,欢迎大家在本帖留言
楼主,你好,大致看了一下发现你这个双目立体视觉源代码是不是复制的有些部分重复了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-21 21:40:10 | 显示全部楼层

【代码】单目摄像机标定程序_分享

楼主写的代码真详细,很佩服,正在仔细拜读,我也是做目标点位姿估计的 谢谢楼主
那咱们俩做的东西基本上是相同的了,以后有什么问题可以互相探讨下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-21 21:42:50 | 显示全部楼层

【代码】单目摄像机标定程序_分享

[quote="guvcolie":2dm6ylqm]以下是我的一个项目,关于双目视觉求解三维空间中点的空间坐标的源代码,立体标定、立体校正、单点重映射算法、Kalman滤波器算法、求空间坐标、实时姿态等源码都在其中,我就不一一分类了,有需要的话请大家自行研究


  /////////////////////////////////////
  样机完成时间2012.12.17
  13:48 pm
  作者:李吉祥
  /////////////////////////////////////
  /////////////////////////////////////
  2012.12.18
  8:27 am对代码进行嵌入Kalman滤波器优化。
  /////////////////////////////////////

               

                //下面这个if-else就是要严刑拷问“准三角形轮廓”的真身的!
                /*如果没得到“准三角形轮廓”(系统刚启动时阈值化调得不理想或者后期的的确确没找到像三角形的轮廓),那我们就没必要在图像上和控制台上显示
                坐标了!如果contour_triangle不为空但是numberOfContour大于1,说明有假冒的“三角形轮廓”混进来了,既然它混进来了,那我就也不显示坐标了!*/
                贝,退出这个循环后我再慢慢拷问它是不是真的 ╭(╯^╰)╮

                        lenght_triangle1 = tmp_lenght1;  //下面两个值要保存下来,当切入Kalman循环时这两个值会作为状态变量的初始值!

                        area_triangle1 = tmp_area1;

                }
               

                //下面这个if-else就是要严刑拷问“准三角形轮廓”的真身的!
                /*如果没得到“准三角形轮廓”(系统刚启动时阈值化调得不理想或者后期的的确确没找到像三角形的轮廓),那我们就没必要在图像上和控制台上显示
                坐标了!如果contour_triangle不为空但是numberOfContour大于1,说明有假冒的“三角形轮廓”混进来了,既然它混进来了,那我就也不显示坐标了!*/
                if ( contour_triangle1 &&  numberOfContour1 == 1 ){  



        return 0;
}


如果有什么问题的话,欢迎大家在本帖留言
楼主,你好,大致看了一下发现你这个双目立体视觉源代码是不是复制的有些部分重复了?[/quote:2dm6ylqm]
不是重复 ,只是一个是左目的处理过程,一个是右目的处理过程。当时为了方便,右目的变量都是在左目的变量的基础上后加个1,你可以仔细看看
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|OpenCV中文网站

GMT+8, 2024-4-28 06:57 , Processed in 0.009502 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表