minRect = cv2.minAreaRect(c) # get oriented bounding box box = cv2.boxPoints(minRect) # 旋转的bounding box # 根据旋转bouding box找到窄边的中心, 相当于焊缝2d起点和2d终点 box_dis = np.linalg.norm((box - box[0]), axis=1)
时间: 2024-03-27 09:41:47 浏览: 19
这段代码是在获取当前轮廓的旋转矩形框,并计算该矩形框的边缘距离。其中,cv2.minAreaRect 函数获取当前轮廓的最小外接矩形,该矩形是可旋转的,其包围了当前轮廓的所有点。接着,cv2.boxPoints 函数获取旋转矩形的四个顶点,并将其存储在变量 box 中。最后,使用 np.linalg.norm 函数计算每个顶点与第一个顶点之间的距离,存储在变量 box_dis 中。这些距离将用于确定焊缝的起点和终点。
相关问题
minRect = cv2.minAreaRect(c) # get oriented bounding box
这段代码使用cv2.minAreaRect函数计算给定轮廓c的最小外接矩形,并将其存储到minRect变量中。最小外接矩形是指能够恰好包围轮廓的最小面积矩形,其长宽与轮廓的方向相关。
具体来说,cv2.minAreaRect函数的执行步骤如下:
1.根据轮廓c计算其最小外接矩形;
2.返回一个包含最小外接矩形信息的对象,该对象包括最小外接矩形的中心坐标、长宽、旋转角度等信息,可以通过对象的方法和属性获取这些信息。
需要注意的是,该函数的实现同样基于OpenCV的cv2模块。
box = cv2.boxPoints(minRect) # 旋转的bounding box
这段代码使用cv2.boxPoints函数计算给定最小外接矩形的四个顶点坐标,并将这些坐标存储到box变量中。这四个顶点坐标定义了一个旋转的bounding box,即能够恰好包围最小外接矩形的最小面积矩形,其长宽与轮廓的方向相关。
具体来说,cv2.boxPoints函数的执行步骤如下:
1.根据最小外接矩形计算其四个顶点坐标;
2.返回一个包含四个顶点坐标的数组,数组的形状为(4,2),其中每一行表示一个顶点的坐标(x,y)。
需要注意的是,该函数的实现同样基于OpenCV的cv2模块。