找到变形矩形的角

dut*_*boy 7 geometry

我正在尝试制作一个自动校正矩形透视的程序.我已经设法得到矩形的轮廓,并有代码来纠正透视,但我找不到角落.最大的问题是,因为它已经变形,我不能使用以下"代码":

  c1 = min(x), min(y)
  c2 = max(x), min(y)
  c3 = min(x), max(y)
  c4 = max(x), max(y)
Run Code Online (Sandbox Code Playgroud)

这不适用于这种情况(X代表一个角落):

X0000000000X
.00000000000
..X000000000
.....0000000
........0000
...........X
Run Code Online (Sandbox Code Playgroud)

有谁知道如何做到这一点?

Dav*_*vid 5

离市中心最远的地方会给你一个角落.离第一个角落最远的点会给你另一个角落,它可能与第一个角落相邻或相对.距离这两个角之间的线的最远点(更加强大的数学运算)会给你第三个角.我使用距离中心的距离作为打破平局.为了找到第四个角,它将是你找到的前3个角形成的三角形外的点,距离这些角之间最近的线最远.

这是一个非常耗时的方式,我从来没有尝试过,但它应该工作.

  • 我认为你选择任何一点作为你的中心,距离它最远的地方将是一个角落. (4认同)