如何在opencv c ++中的两点之间画一条线

时间:2014-02-05 09:50:58

标签: c++ visual-studio-2010 opencv line point

  Point p1(faces[i].x + (eyes[j].x +  eyes[j].width*0.5), faces[i].y + (eyes[j].y + eyes[j].height*0.5));
  Point p2(faces[i].x + (eyes[j].x +  eyes[j].width*0.5), faces[i].y + (eyes[j].y + eyes[j].height*0.5));
  line(frame, p1, p2, Scalar( 255, 255, 0 ), 5, 8, 0);

这是我编写的用于在两个点p1和p2之间绘制线段的代码。实际上我得到点的显示,但没有线段。任何人都可以帮助我!!

提前致谢。

1 个答案:

答案 0 :(得分:2)

使用上面提供的代码可以推断出这两个点位于相同的位置,因此您不会获得任何行而是获得一个点。

另请查看行函数:http://docs.opencv.org/modules/core/doc/drawing_functions.html#line

顺便说一句:您的指数存在问题。如果你想要连接两只眼睛的中心,你应该做一些像

这样的事情
Point p1(faces[0].x + (eyes[0].x +  eyes[0].width*0.5), faces[0].y + (eyes[0].y + eyes[0].height*0.5));
Point p2(faces[0].x + (eyes[1].x +  eyes[1].width*0.5), faces[0].y + (eyes[1].y + eyes[1].height*0.5));

假设面[0]指向方形面的坐标,眼睛[0]是该面部的第一只眼睛,眼睛1是第二只眼睛(假设未发生以下情况)

enter image description here