2014-02-05 162 views
2
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之间绘制线段的代码。其实我得到的点显示,但没有线段。有谁能够帮助我!!如何在opencv C++中的两点之间绘制一条线

在此先感谢。

+0

只是猜测......如果点定位在同一地点,你有一个点不是一条线。 –

+0

p1和p2看起来相同? – berak

+0

其实我需要在两个眼睛中心之间画线。我带了两个中心。我从脸上检测到了眼睛。 – Somashekar

回答

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

+0

我需要得到两个眼睛中心的中心点。你能建议我解决方案! – Somashekar

+0

我在循环中运行它,图像也在视频中波动。我怎么做到这一点。 – Somashekar

+0

你需要弄清楚那些指标“我”和“j”以及如何使用它们。我无法帮助更多有限的信息。 –

相关问题