先简述代码设计思路流程,完整代码贴在最后。
1.首先要知道弧线就是圆的一部分,所以需要通过三个点找到对应的圆方程:
这一步就需要依靠数学公式计算。
2.找到圆方程之后,如何确定所需要的弧线是哪一段?
根据中间点和开始结束两点组成的直线进行位置判断,绘制出所需的弧线段。
3.辅助功能:鼠标点击绘图。
效果图:
代码如下:注释还没写,不懂得可以评论区问。
import cv2
import numpy as np
arc = cv2.imread('roi.png')
xy_arc = []
xx = []
yy = []
xy = []
def darc(event, x, y, flag, param):
global xy_arc
global xy
global xx
global yy
if event == cv2.EVENT_LBUTTONUP:
xy_arc.append((x, y))
cv2.circle(arc, (x, y), 1, (0, 0, 255), -1)
if len(xy_arc) == 3:
a = xy_arc[0][0] - xy_arc[1][0]
b = xy_arc[0][1] - xy_arc[1][1]
c = xy_arc[0][0] - xy_arc[2][0]
d = xy_arc[0][1] - xy_arc[2][1]
a1 = ((xy_arc[