zoukankan      html  css  js  c++  java
  • day 11 绘制轮廓

    #-*- coding:utf-8 -*-
    
    import cv2
    import numpy as np
    
    #1.导入图像
    #img = cv2.imread("home.jpg",0)   #因为还有在原始图像绘制轮廓,不能读入灰度图像
    img = cv2.imread("home.jpg")
    
    img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    
    #2.二值化处理,
    ret,thresh = cv2.threshold(img_gray,127,255,cv2.THRESH_BINARY)
    
    #3.查找轮廓
    image,contours,hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
                    #第1参数:输入图像
                    #第2参数:轮廓检索方式
                    #第3参数:轮廓近似方法 cv2.CHAIN_APPROX_SIMPLE(矩形框) cv2.CHAIN_APPROX_NONE(点)
    
    #第1返回值 图像
    #第2返回值  轮廓(是list列表,寸纯图像中的所有轮廓,每个轮廓是个Numpy数组(x,y))
    #第3返回值  轮廓的层析结构
    
    #4.绘制轮廓
    #imgage = cv2.drawContours(img,contours,-1,(0,255,0),2)
                             #第1参数:原始图像
                            # 第2参数:轮廓,1个python列表
                            # 第3参数:轮廓的索引(-1时绘制所有轮廓)
                            # 第4参数:轮廓颜色
                            # 第5参数:轮廓厚度
    
    
    #5.绘制外界矩形
    for cnt in contours:       #从list列表取出每个轮廓
        if cv2.contourArea(cnt) < 1500:
            continue
        x,y,w,h = cv2.boundingRect(cnt)
        #x,y 矩形顶点(左上角)   w,h(矩形宽高)
        img = cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)
    
    cv2.imshow('dilation',img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

        

  • 相关阅读:
    正则表达式
    网络编程
    多线程
    IO—Data
    IO-对象流
    IO-转换流
    异常
    常用类——File——Random——Math——枚举
    每月博客-20180310
    每月博客-20180204
  • 原文地址:https://www.cnblogs.com/venicid/p/7906146.html
Copyright © 2011-2022 走看看