Python和OpenCV图像边缘检测分割

 

元学习论文总结||小样本学习论文总结

2017-2019年计算机视觉顶会文章收录 AAAI2017-2019 CVPR2017-2019 ECCV2018 ICCV2017-2019 ICLR2017-2019 NIPS2017-2019

 


Opencv之图像分割原理:https://www.jianshu.com/p/4ffdf060fe57

掩膜操作:https://blog.csdn.net/u011028345/article/details/77278467

生成边界框box:https://blog.csdn.net/sinat_36458870/article/details/78825571

介绍:https://blog.csdn.net/hjxu2016/article/details/77833336

几种方法介绍:https://blog.csdn.net/on2way/article/details/46812121

关于阈值设定:https://blog.csdn.net/on2way/article/details/46812121

opencv绘制轮廓的外接矩形和圆:https://jingyan.baidu.com/article/c74d6000d6a2f40f6a595ddf.html

cv2.findContours:

参数

第一个参数是寻找轮廓的图像;

第二个参数表示轮廓的检索模式,有四种(本文介绍的都是新的cv2接口):
    cv2.RETR_EXTERNAL表示只检测外轮廓
    cv2.RETR_LIST检测的轮廓不建立等级关系
    cv2.RETR_CCOMP建立两个等级的轮廓,上面的一层为外边界,里面的一层为内孔的边界信息。如果内孔内还有一个连通物体,这个物体的边界也在顶层。
    cv2.RETR_TREE建立一个等级树结构的轮廓。

第三个参数method为轮廓的近似办法
    cv2.CHAIN_APPROX_NONE存储所有的轮廓点,相邻的两个点的像素位置差不超过1,即max(abs(x1-x2),abs(y2-y1))==1
    cv2.CHAIN_APPROX_SIMPLE压缩水平方向,垂直方向,对角线方向的元素,只保留该方向的终点坐标,例如一个矩形轮廓只需4个点来保存轮廓信息
    cv2.CHAIN_APPROX_TC89_L1,CV_CHAIN_APPROX_TC89_KCOS使用teh-Chinl chain 近似算法

 

源码:

def box_detect():
    img = cv2.imread('1/input4w.jpg')
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    ret, binary = cv2.threshold(gray, 100, 150, cv2.THRESH_BINARY)  # 灰度阈值

    # 对binary去噪,腐蚀与膨胀
    binary = cv2.erode(binary, None, iterations=2)
    binary = cv2.dilate(binary, None, iterations=2)
    cv2.imwrite('temp_img/binary.jpg', binary)

    # contours是轮廓本身,hierarchy是每条轮廓对应的属性。
    # cv2.RETR_TREE建立一个等级树结构的轮廓。cv2.CHAIN_APPROX_SIMPLE矩形轮廓只需4个点来保存轮廓信息
    _, contours, hierarchy = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

    min_num = 250000
    max_num = 2700 * 4000
    for contour in contours[1:]:

        x, y, w, h = cv2.boundingRect(contour)  # 外接矩形

        if (w * h) > min_num:
            if (w * h) < max_num:
                out = cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
                cv2.imwrite('temp_img/1-box.jpg', out)
                print('find box')

 

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值