zoukankan      html  css  js  c++  java
  • OpenCV -- 获取轮廓照片



    import cv2
    img = cv2.imread( 'E:A.jpeg' )
    cv2.imshow( 'img', img )
    
    gray = cv2.cvtColor( img, cv2.COLOR_BGR2GRAY )
    ret, binary = cv2.threshold( gray, 127, 255, cv2.THRESH_BINARY )
    
    contours, hierarchy = cv2.findContours( binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE )
    cv2.drawContours( img, contours, -1, ( 160, 240, 120 ), 3 )
    
    cv2.imshow( 'img1', img )
    cv2.waitKey( 0 )
    cv2.destroyAllWindows()
    


    cv2.findContours()函数:

    參数:

    參1(是寻找轮廓的图像)

    參2(表示轮廓的检索模式)有四种:

    (1).cv2.RETR_EXTERNAL 仅仅检測外轮廓

    (2).cv2.RETR_LIST 检測的轮廓不建立等级关系

    (3).cv2.RETR_CCOMP 建立两个等级的轮廓,

    上面的一层为外边界。

    里面的一层为内孔的边界信息。

    假设内孔内另一个连通物体,

    这个物体的边界也在顶层

    (4).cv2.RETR_TREE 建立一个等级树结构的轮廓


    參3(method为轮廓的近似办法):

    (1)cv2.CHAIN_APPROX_NONE 存储全部的轮廓点,

    相邻的两个点的像素位置差不超过1,

    即max(abs(x1-x2),abs(y2-y1))==1

    (2).cv2.CHAIN_APPROX_SIMPLE 压缩水平方向。

    垂直方向,对角线方向的元素,

    仅仅保留该方向的终点坐标。

    比如一个矩形轮廓仅仅需4个点来保存轮廓信息

    (3).cv2.CHAIN_APPROX_TC89_L1,CV_CHAIN_APPROX_TC89_KCOS

    使用teh-Chinl chain 近似算法


    返回值:
    值1:
    是轮廓本身。
    值2:

    每条轮廓相应的属性。




  • 相关阅读:
    Linux中增加组和用户
    Storm重启topology,失败
    ES读写数据的工作原理
    Hive优化
    Flink提交流程和架构
    Flink中的Time与Window
    linux 中文件夹的文件按照时间倒序或者升序排列
    ElasticSearch之配置文件详解
    redis中的设置bind绑定ip不是设置白名单
    YARN调度架构中的AppMaster
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/5034300.html
Copyright © 2011-2022 走看看