gpt4 book ai didi

opencv - 在opencv中绘制垂直线到一条线

转载 作者:太空宇宙 更新时间:2023-11-03 20:40:16 25 4
gpt4 key购买 nike

我最好用一张图片来解释我的问题

我有一个轮廓和一条穿过该轮廓的线
在等高线和线的交点点,我想在线和等高线的交点处绘制一条垂直线,直到特定距离。
我知道直线的交点斜率
作为引用,我附上这张图片。 enter image description here

最佳答案

如果你图片中的蓝线是从A点到B点,而你想在B点画红线,可以按如下方式进行:

  1. 获取从 A 到 B 的方向矢量。这将是:v.x = B.x - A.x; v.y = B.y - A.y;
  2. 规范化向量:mag = sqrt (v.x*v.x + v.y*v.y); v.x = v.x/mag; v.y = v.y/mag;
  3. 通过交换 x 和 y 并将其中之一反转,将向量旋转 90 度。关于旋转方向的注意事项:在 OpenCV 和图像处理中,通常图像上的 x 和 y 轴不是以欧几里德方式定向的,特别是 y 轴指向下方而不是向上。在欧几里德中,反转最终的 x(初始 y)将逆时针旋转(欧几里德的标准),而反转 y 将顺时针旋转。在 OpenCV 中则相反。因此,例如要在 OpenCV 中顺时针旋转:temp = v.x; v.x = -v.y; v.y = temp;
  4. 在 B 处创建一条指向 v 方向的新线:C.x = B.x + v.x * 长度; C.y = B.y + v.y * 长度;(请注意,您可以通过简单地否定长度在相反方向上创建点 D 来使其在两个方向上延伸。)

关于opencv - 在opencv中绘制垂直线到一条线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8664866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com