【问题标题】:How do I find specific points on a image, regardless of the rotate?无论旋转如何,如何在图像上找到特定点?
【发布时间】:2021-06-24 04:02:12
【问题描述】:

我有这样一张照片。

这是图片上的点数。即使我将图片颠倒过来,我也希望点数保持不变。这种旋转可以是任何角度值。

例如

抬头

上下颠倒

90度

45度

我尝试了一些方法,例如 Opencv 相机校准和姿势估计,但我无法得到要修复的点数。

【问题讨论】:

标签: opencv image-processing computer-vision camera-calibration pose-estimation


【解决方案1】:

我不认为这是一个编程问题,而是一个基本的几何问题。

您在该配置中有 7 个点,并且您想找到一些对旋转具有鲁棒性的几何属性。我首先想到的是距离

  • 计算所有点之间的平方距离 (SD),然后找到与所有其他点的距离平方和 (SSD) 最大的那个。那个点是 P7。
  • 从 P7 中找到 SD 最大的那个。那个点是 P1。
  • 从 P7 中找到 SD 最小的那个。那一点是 P6。
  • 从 P7 中找到 SD 最小的那个。那个点是 P5。
  • 从 P1 中找到 SD 最小的那个。那个点是 P2。

为了找到 P3 和 P4,您需要检测相对于方向的一侧(左/右)。让我们将 Q 和 R 称为两个未知点和一个我们已经确定的方向,例如从 1 到 7 的方向。您现在可以查看从 P1 到 P7 的向量与从 P1 到 P1 的向量之间的叉积符号问:如果它在右边,则值为正。所以我们能够找到它的身份。

if ( (Q.x - P1.x) * (P2.y - P1.x) - (Q.y - P1.y) * (P2.x - P1.x) > 0) {
    P3 = Q;
    P4 = R;
}
else {
    P3 = R;
    P4 = Q;
}

【讨论】:

  • 我喜欢你的回答,即使没有其他人可以设法将他们的鼠标一直拖到“upvote”按钮?
  • @ÇağatayKARAADEMİR 如果您还有其他问题,最好发布另一个问题。具体来说,在问题中写下您现有的解决方案,并说明您获得的准确性存在什么问题。
  • @MarkSetchell 谢谢!非常感谢。
  • @ÇağatayKARADEMİR 此外,如果答案解决了您的问题,请记住将其标记为已接受。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-28
  • 2023-04-07
  • 2012-11-03
  • 1970-01-01
  • 2010-10-31
  • 2021-12-11
相关资源
最近更新 更多