如何在 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].x
和 faces[i].y
中减去一些值,直到到达右下角的顶点,但我发现网络摄像头中的面部深度使这种方法无法实现工作。
这样,我怎样才能找到上面提到的矩形的顶点,以便我可以正确地画线?
矩形的 x
位置给出了它的左侧。所以 x+width
给你它的右边。
同样,矩形的 y
位置为您提供其顶边。所以 y+height
给你它的底部。
float rectRight = faces[i].x + faces[i].width;
float rectBottom = faces[i].y + faces[i].height;
如果这仍然不是您想要的,那么请 post 一个我们实际上可以 运行 的小例子。使用硬编码值而不是依赖 opencv,因此我们可以复制并粘贴您的代码并自己查看问题。
使用 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].x
和 faces[i].y
中减去一些值,直到到达右下角的顶点,但我发现网络摄像头中的面部深度使这种方法无法实现工作。
这样,我怎样才能找到上面提到的矩形的顶点,以便我可以正确地画线?
矩形的 x
位置给出了它的左侧。所以 x+width
给你它的右边。
同样,矩形的 y
位置为您提供其顶边。所以 y+height
给你它的底部。
float rectRight = faces[i].x + faces[i].width;
float rectBottom = faces[i].y + faces[i].height;
如果这仍然不是您想要的,那么请 post 一个我们实际上可以 运行 的小例子。使用硬编码值而不是依赖 opencv,因此我们可以复制并粘贴您的代码并自己查看问题。