十五天掌握OpenCV——形态学转换

魏老师学生——Cecil:学习OpenCV-机器视觉之旅


Aim:掌握形态学操作——腐蚀、膨胀、|基本| 开运算、闭运算 、梯度 |变体|。
根据图像形状(二值化图像)进行的简单操作。参数:(原始图像,结构化元素\核)。

腐蚀

  1. 腐蚀前景物体的边界。
  2. 去除白噪声或者断开两个连在一起的物体。

代码演示

# coding=utf8
import cv2
import numpy as np
while(1):
    img=cv2.imread('123.jpg',0)
    kernel=np.ones((5,5),np.uint8)
    erosion=cv2.erode(img,kernel,iterations=1)
    k=cv2.waitKey(0)&0xFF
    if k==27:
        break
cv2.imshow('1',erosion)

1

膨胀

  1. 与卷积核对应的原图像的像素值只要有一个1,中心元素像素值为1.增加图中白色区域。
  2. 去噪:先腐蚀,再膨胀。
  3. dilation=cv2.dilate(img,kernel,iterations=1)

开运算

  1. 定义:先腐蚀再膨胀。
  2. opening=cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)

闭运算

  1. 定义:先膨胀再腐蚀。
  2. 用处:填充前景物体中的小洞或者小黑点。
  3. closing=cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel)

形态学梯度

获取前景物体的轮廓。

  1. gradiant=cv2.morphologyEx(img,cv2.MORPH_GRADIENT,kernel)

礼帽

  1. 原始图像-开运算得到图像。
  2. tophat=cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel)

黑帽

  1. 闭运算得到图像-原始图像。
  2. blackhat=cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel)

结构化元素Element

  1. 使用numpy构建各种特征图形的矩阵。(正方形,椭圆,十字形)
  2. 正方形(五行五列):cv2.getStructuringElement(cv2.MORPH_RECT,
    (5,5))
  3. 椭圆(五行五列):cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(5,5))
  4. 十字形(五行五列):cv2.getStructuringElement(cv2.MORPH_CROSS,(5,5))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值