zoukankan      html  css  js  c++  java
  • python+opencv形态学处理

    环境vscode下的python3.7

    opencv形态学处理学习笔记

    1、显示原图(读成灰度图)

    img = cv2.imread("c:\Users\Administrator\Desktop\123\rose.jpg",cv2.IMREAD_GRAYSCALE)
    cv2.imshow('img',img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    2、腐蚀操作

      原理:白色像素值为255,黑色像素值为0,与0相乘为零导致越来越多像素变为0,逐渐被黑色腐蚀。

    #腐蚀操作(矩阵卷积)
    #矩阵大小平均和 (3,3)核大小,全为一的矩阵
    kernel =np.ones((3,3),np.uint8)
    #interation表示次数
    erosion = cv2.erode(img,kernel,iterations = 1)
    cv2.imshow('erosion',erosion)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

       将iteration改成3,核大小为(3,3)

     

      将核大小改成(6,6),iteration为1

    3、膨胀操作,与腐蚀操作可理解为逆操作

    #膨胀操作
    #可以理解为腐蚀的逆操作
    dilate = cv2.dilate(img,kernel,iterations = 1)
    cv2.imshow('dilate',dilate)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    通过上面的一对操作组合运算得到的操作

    4、开运算

    #开运算 先腐蚀,再膨胀
    opening = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)
    
    cv2.imshow('opening',opening)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

     

      开运算用途:用于除毛刺、孤立的小点,类似一个滤波器。消除白色小物体。

    5、闭运算

    #闭运算 先膨胀,再腐蚀
    closeing = cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel)
    
    cv2.imshow('closeing',closeing)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

       闭运算用途:消除黑色小区域(小型黑洞),黑色毛刺等等。

     6、梯度运算

    #梯度运算
    #梯度=膨胀-腐蚀
    gradient = cv2.morphologyEx(img,cv2.MORPH_GRADIENT,kernel)
    cv2.imshow('gradient',gradient)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

       梯度主要是为了得到边缘信息。

     7、顶帽

    #顶帽 = 原始输入-开运算结果
    tophat = cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel)
    cv2.imshow('tophat',tophat)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

      用原始图像减去开运算(消除白色小区域),得到白色小区域及边缘,突出白色区域(较亮的区域)。

    8、黑帽

    #黑帽 = 闭运算-原始输入
    blackhat = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel)
    
    cv2.imshow('blackhat',blackhat)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

        

      用原始图减去闭运算结果(白色小区域),突出黑色小区域(暗色部分)。

  • 相关阅读:
    uwsgi 的启动停止重启
    项目部署(Python3 + ubuntu 16.04(ali server) + Nginx + uWSGI + Django 1.11)
    阿里云连接上Mysql数据库(10061 errors)
    本地数据库上传到阿里云Mysql
    Django 用户的修改密码接口
    django 的忘记密码接口
    Git光速入门
    缓存问题:一致性、穿击、穿透、雪崩、污染
    redis进阶-高可用:主从复制详解
    Redis分片技术(Redis Cluster)
  • 原文地址:https://www.cnblogs.com/oldhuang/p/12115333.html
Copyright © 2011-2022 走看看