opencv怎么分别计算两条线段?for (int i = 0; i < lines->total; i++){ \x05\x05CvPoint* line = (CvPoint*)cvGetSeqElem (lines,i); \x05\x05double slope = ((double)(line[0].y - line[1].y))/((double)(line[0].x - line[1].x)); \x05\

来源:学生作业帮助网 编辑:作业帮 时间:2024/10/03 18:40:16
opencv怎么分别计算两条线段?for (int i = 0; i < lines->total; i++){      \x05\x05CvPoint* line = (CvPoint*)cvGetSeqElem (lines,i);     \x05\x05double slope = ((double)(line[0].y - line[1].y))/((double)(line[0].x - line[1].x));    \x05\
xTkOG+ ;Y $*JUZE5lkl;6v11Q @?3_FHPj}9D0@I7 zaI+ꆮ;0cqFfz ~C.&$XG@+!8}1?ߍry[1x[>XRkٽ4XXlyIL,0XM'3V-V _8hb.ӑn?_5C׈wrLl=~1( ~\bIX_\ ]NKhn,66BG8=c9+d}W|ۯ\zfK>J/&NQg_v:B3`AWLUS'єWl4NᗇFTʊV)e)/ApMkpȥ IZKۼO#XMY)ocbBO`<nlrt0l^ۄȐAY#ovrMg1y y~[u$o|/y8SE%^A 99W0$-~ZXws^N>;9 JBPtu^K 9EJ;r>Vg&L vaZ")8C.O,ԌQjΠik3ii)<5]6ʯ36J;UzغXS, %|pvE+ZY%rDI~.զ2m<@+ǠQ̒}N(GlJHn,'rrv *:>Ыib`:Cϫ,CU()=j(IRhn kkhr'K$CğۥxSohߧmJ]P"5Qls6h1'JqNA4D6Ƌ+e[.;$ HU= ֺZN5 g#:n4Q;P^PPj/UPd$aĵSrJSt

opencv怎么分别计算两条线段?for (int i = 0; i < lines->total; i++){ \x05\x05CvPoint* line = (CvPoint*)cvGetSeqElem (lines,i); \x05\x05double slope = ((double)(line[0].y - line[1].y))/((double)(line[0].x - line[1].x)); \x05\
opencv怎么分别计算两条线段?
for (int i = 0; i < lines->total; i++){  
    \x05\x05CvPoint* line = (CvPoint*)cvGetSeqElem (lines,i); 
    \x05\x05double slope = ((double)(line[0].y - line[1].y))/((double)(line[0].x - line[1].x));
    \x05\x05if(atan(slope)/CV_PI*180 > -20 && atan(slope)/CV_PI*180 < -5){
         cvLine (pImgDst,line[0],line[1],CV_RGB(255,0,0),2,8);
    \x05\x05}
\x05}


用霍夫变换找到的两条线段,然后用CVLINE画了出来. 我想请问一下,怎么才能分别得到这两条线段的端点的位置呢?



line[0].x line[1].x 是线段两点的x坐标,但是现在是两条线段 ,不是很清楚,应该怎么区分.而且这两条红色线段是可能上下左右移动的.

opencv怎么分别计算两条线段?for (int i = 0; i < lines->total; i++){ \x05\x05CvPoint* line = (CvPoint*)cvGetSeqElem (lines,i); \x05\x05double slope = ((double)(line[0].y - line[1].y))/((double)(line[0].x - line[1].x)); \x05\
我的一点想法:因为是多条线段,将你找到的线段用矩形轮廓包围起来,逐点扫描,利用灰度阈值(因为你已经用红色标示,我建议使用R通道)找出该矩形区域内所有灰度级别在阈值内的点,根据X坐标和Y坐标就可判断首尾坐标,因为是直线,那么x坐标最小的肯定是首,x坐标最大的肯定是尾嘛!可以自己在坐标纸上试着研究一下!逻辑上很简单的.但是我觉得霍夫变换肯定已经可以直接输出坐标了,只是你没找到对应的参数而已,否则你这条线断不可能画得出来,也就是说坐标其实已经计算了,只需要你输出就可以了.