opencv - 如何以特定顺序检测多个正方形中心?(OpenCV 3.4.6, C++) 已编辑
问题描述
我想知道是否有一种方法可以检测所有正方形的中心,但是以特定的顺序。我已经编写了点的检测和存储,但我需要按特定顺序检测它们。
我将提供一张图像,在该图像上将写(油漆)特定的检测顺序。
!【检测顺序】:https ://imgur.com/a/b3i0lxz
目前,它从底部->向上(4->3->2->1->6->5)检测。我希望订单为 1->2->3->4->5->6,就像图像上所说的那样。
我目前唯一的想法是使用 push_back/push_front 存储点。另外,我的另一个想法是制作 6 个 if 语句来检测图像的特定部分......比如
if(rect_position[0])
center_point[0] = rotatedRect.center
else if(rect_position[1])
center_point[1] = rotatedRect.center
.
.
.
其中rect_position[0]将保存 x0, y0, x1, y1 (基本上制作另一个矩形,如果检测到的点在该矩形内,则写下该点)。相机不会移动,面部会随着小幅度的移动而静止。
另外,我用鼠标来指定顺序,使用void CallBackFunc,但我也不允许这样做,因为教授希望检测是自动的。
任何事情都会有所帮助:教程、提示、新想法,非常感谢。
我正在存储以下点:
for (int i = 0; i < contours.size(); ++i) {
center_points[i] = rotatedRect.center;
}
使用 inRange 和 findContours 函数和 RotatedRect 检测正方形。如果需要,我可以提供更多代码,我只需要一个解决方案。
解决方案
推荐阅读
- python - Altair:在具有连续刻度的散点图上进行回归
- firebase - Flutter - FirebaseMessaging.onMessageOpenedApp.listen 未触发
- java - 代表不同类型的Java方法参数
- testing - testcafe,如何等待 SpringBoot 应用程序启动
- python - 如何删除特定长度的子字符串周围的括号?
- google-apps-script - 谷歌表单/appscript - 如何根据答案在部分之间跳转(通过appascript)?
- reactjs - 在 Formik 字段中禁用 Google Chrome 地址自动完成 - ReactJs
- python - 如何使用 Python 将“.txt”文件附加到电子邮件中?
- xml - 允许一系列 VLAN NSO CISCO
- android - 热区信息