矩形函数在c++objective-c中的应用
rectangle function use in c++ objective-c
嗨,我一直在尝试在人脸检测矩形之后绘制第二个矩形,但参数x、y、h、w让我感到困惑。我在变量中尝试了不同的值,但我不明白它们的确切含义。我知道x,y应该移动到所需的位置,h,w应该重新调整它的大小
- (void)processImage:(cv::Mat &)image {
Mat gray;
std::vector<cv::Rect> faces;
Scalar color = Scalar(0, 255, 0);
cvtColor(image, gray, COLOR_BGR2GRAY);
_faceDetector.detectMultiScale(gray, faces, 1.1, 2, 0, cv::Size(60, 60));
for (int i = 0; i < faces.size(); i++) {
rectangle(image, faces[i], color, 1);
// x, y should move the rectangle to the desired position
int x = faces[i].x;
int y = faces[i].y;
x=x+y;
y=y+x;
// h, w should resize the rectangle
int he = y+faces[i].height*0.1 ;
int we = x+faces[i].width*0.1;
rectangle(image, cv::Point (x, y), cv::Point (we, he), Scalar(255,0,255),2,8,0);
}
}
有人能给我一个矩形的示意图吗?请把x,y,h,w的值放进去。感谢
x
是X位置,y
是Y位置。h
和w
分别代表高度和宽度。
考虑以下矩形:
A --------- B
| |
| |
C --------- D
其位置(原点)由点A
定义,其他角点相对于A
定义。
A = (x, y)
B = (x + width, y)
C = (x, y + height)
D = (x + width, y + height)
您可能还应该重新访问
x=x+y;
y=y+x;
为什么在不同的轴上添加坐标是有意义的?
此外,使用在前一行上被覆盖的x
的值很可能是有问题的。与初始值相比,您的计算结果为
finalX = x + y
finalY = y + (x + y) // because you're using the modified value of x
相关文章:
- 试图在visual studio上用C++创建一个桌面应用程序
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- c++r值引用应用于函数指针
- 在C应用程序中运行C++(带有STL)函数
- 使用VerQueryValue检索应用程序的文件描述
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用调试/崩溃报告将应用程序部署到客户端
- C++控制台应用程序阻止退出
- 码头化的C++应用程序是否向后兼容早期的内核版本
- 将应用程序从32位移植到64位时出现问题
- 在 Objective-C++ 中应用于__weak指针时,通过关键字推导类型"auto"规则是什么?
- 将Objective-C应用程序移植到Windows.什么是最好的选择
- 通过命令行编译和链接 Swift/Objective-C++ 应用程序
- 将现有的C++框架链接到Objective-C + Cocoa应用程序
- Objective-C与应用数学算法的C
- 在不编写任何Objective-C代码的情况下,是否可以在C 中开发iPhone/iPad应用程序
- 矩形函数在c++objective-c中的应用
- 如何在C++应用程序中处理指向 Objective-C 对象的指针
- 在Xcode 4中构建用于Objective-c应用程序的静态c++库
- 用户界面-适用于64位应用程序的Stingray Objective Toolkit C++的替代方案