问题说明:最近一直在做特征点匹配,利用初始匹配求出部分正确点,然后利用这些点求出两个图象之间的基础矩阵,然后再利用求得的基础矩阵对图1中的每个特征求出其在图2中的对应外极线,从而利用外极张进行精确特征点匹配.问题出现在:
对应每一个特征点的外极线已经全部求出,并将结果存放在一个3*N矩阵中(N表示有N条对极线,3表示3个参数a,b,c即ax+by+c=0)
现在我想把所用点的对极线在第二副图像中画出来,要知道如果想画一条线则必须给出两个已知点,我是利用如下方式求得两个点的:
x1=10000; y1=cvRound((-x1*a-c)/b);(cvRound()表示把()中的换成整数)
x2=-10000; y2=cvRound((-x2*a-c)/b);cvLine(srcImage2,cvPoint(x1,y1),cvPoint(x2,y2),CV_RGB(0,0,255),1,0);
可是这样得到的结果是有一部分线是画不出来的
我想原因可能是因为用上面的方法求得的两个点很有可能越界(即不在第二个平面内),按理说应该不会这样吧?
如果真是这样的话请问大家如何才能画出所有的直线呢?(只知道直线的方程)
对应每一个特征点的外极线已经全部求出,并将结果存放在一个3*N矩阵中(N表示有N条对极线,3表示3个参数a,b,c即ax+by+c=0)
现在我想把所用点的对极线在第二副图像中画出来,要知道如果想画一条线则必须给出两个已知点,我是利用如下方式求得两个点的:
x1=10000; y1=cvRound((-x1*a-c)/b);(cvRound()表示把()中的换成整数)
x2=-10000; y2=cvRound((-x2*a-c)/b);cvLine(srcImage2,cvPoint(x1,y1),cvPoint(x2,y2),CV_RGB(0,0,255),1,0);
可是这样得到的结果是有一部分线是画不出来的
我想原因可能是因为用上面的方法求得的两个点很有可能越界(即不在第二个平面内),按理说应该不会这样吧?
如果真是这样的话请问大家如何才能画出所有的直线呢?(只知道直线的方程)
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货