运动控制轨迹坐标提取求代劳

python项目需求:用圆刷把板面刷遍,已经起止坐标的直线插补代码,只需轨迹坐标就可以实现,板面的最小外接矩形已提取到,圆刷的半径100,已经得到最小外接矩形缩小100的矩形,并且得到这个矩形的左极点坐标,现在需要写一个while循环,从缩小的最小外接矩形的点集坐标中提取从左到右弓形的转弯点坐标。怎么写这个定位坐标的循环,求代劳。

contours, hierarchy =cv2.findContours(img_bin,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)  # 轮廓检测函数
# 4.获取最小外接矩形
min_rect =cv2.minAreaRect(contours[0])
        rect_points = cv2.boxPoints(min_rect)
        #轮廓缩放,缩小尺寸是钢丝刷的半径大小100个像素点
        rect_points1 = scale(rect_points,-100)
        rect_points2 = np.int0(rect_points1)
        #缩小后轮廓的左极点
        left_most =tuple(rect_points2[rect_points2[:,0].argmin()])
        cv2.circle(self.image_bj,left_most,15,(0,255,0),-1, cv2.LINE_AA)
        # 5.绘制最小外接矩形
        cv2.drawContours(self.image_bj, rect_points, 0, (255, 0, 255), 10)
        cv2.drawContours(self.image_bj, contours, -1,  (255, 0, 255), 15) 

img

哈哈哈,为什么不是这样的?

img

圆刷的意思是什么?刷子与版本接触面是圆的?也就是直径200?然后圆上的点在直角点上?那像你这样不是刷出来的区域会比你的版面大?

img

另外一种就是圆内切直角,圆和直角之间的部分另外刷,这种方法简单一些,由于可以知道外接矩形的4个坐标点,求出来四条边的直线方程,然后就可以分出来一个个网格,你的路径就在网格上面,计算下点就可以了

左极点坐标已经知道了,刷子直径也知道,右拐点坐标可以算出来啊,然后把右拐点坐标作为左坐标,同时,刷子以更新后的左坐标向右移动,然后刷第二次,以此类推就完成了。

这个有点意思,圆刷怎么刷直角呢