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:

    每条轮廓相应的属性。




  • 相关阅读:
    web.py的input获取问题
    python unicode和 utf8字符串比较
    python default encoding
    linux flash player的问题
    centos 支持 ntfs格式
    学习jqueryjquery中的show()和hide()
    字符串等长分割
    类加载器分类
    类加载器子系统
    70道HR的面试题
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/5034300.html
Copyright © 2011-2022 走看看