繁体   English   中英

如何在Processing中获取rect()的顶点?

[英]How to get the vertices of a rect() in Processing?

使用Greg Borenstein的OpenCV for Processing库,我能够在网络摄像头流中检测用户的面部,并在其周围绘制一个矩形。 以下是将矩形绘制到屏幕的部分:

Rectangle[] faces = opencv.detect()

for (int i = 0; i < faces.length; i++) 
{
   rect(faces[i].x, faces[i].y, faces[i].width, faces[i].height);
}

当用户移动他们的脸时,矩形将相应地移动。

我想提请其中一个点被设定在预定的位置 ,而另一个始终钉在矩形的右下角顶点在屏幕上线。 这样,线的长度和角度将相对于矩形的位置而改变。

我试过的一件事是从faces[i].xfaces[i].y减去一些值,直到我到达右下角的顶点,但我发现网络摄像头中的脸部深度使得这种方法不起作用。

有了这个,我怎么能找到上面提到的矩形顶点,以便我可以正确绘制线?

矩形的x位置为您提供左侧。 所以x+width给你它的右侧。

同样,矩形的y位置为您提供顶部。 所以y+height给你的底部。

float rectRight = faces[i].x + faces[i].width;
float rectBottom = faces[i].y + faces[i].height;

如果那仍然不是你想要的,那么请发一个我们可以实际运行的小例子。 使用硬编码值而不是依赖opencv,因此我们可以复制并粘贴您的代码并自己查看问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM