Opencv算法记录:如何使用Opencv求解圆与轮廓、直线的交点

嵌入式C语言学习进阶系列文章

GUN C编译器拓展语法学习笔记(一)GNU C特殊语法部分详解
GUN C编译器拓展语法学习笔记(二)属性声明
GUN C编译器拓展语法学习笔记(三)内联函数、内建函数与可变参数宏
数组存储与指针学习笔记(一)数据类型与存储、数据对齐、数据移植、typedef



  最近涉及到Opencv用来求解轮廓与直线或者圆等规则物体的交点问题,特写下如下文章记录此。简单作出解释:通过创建轮廓与所求图像的掩膜,然后两者通过逻辑与运算得出交点位置。同理,求解两轮廓的交点方式也是一样的。

DEBUG = True
def contourCirclesIntersect(original_image, contour, circles):
    '''
    计算轮廓与内外圆的圆弧以及圆弧的圆心角
        @contour:轮廓数组
        @circles:圆坐标(cx,cy,r)
        return:
        @points:交点数组
        @arc_angle:圆弧圆心角
    '''
    # 获取图像大小
    blank = np.zeros(original_image.shape[0:2])
    # 创建轮廓与圆形的掩膜
    image1 = cv2.drawContours(blank.copy(), contour, -1, 2)
    image2 = cv2.circle(blank.copy(),(circles[0],circles[1]),circles[2],1,2)
    # 逻辑与判断交点
    intersection = np.logical_and(image1, image2)
    # 获得交点位置
    points = np.argwhere(intersection==True
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值