Opencv学习(3)——形态学操作

形态学操作

导入库

import cv2
import numpy as np

原始图像

在这里插入图片描述

形态学腐蚀

可以通过腐蚀操作将图像”变瘦“
通过cv2.erode( image,kernel,iterations)函数 可以实现
image:要操作的图片
kernel:腐蚀的核函数
iterations:迭代次数,迭代次数越多,图像越不明显

img = cv2.imread('dige.png')
kernel = np.ones((3,3),np.uint8)
erosion = cv2.erode(img,kernel=kernel,iterations=1)
#iterations是迭代次数,迭代次数越多,图像越不明显

在这里插入图片描述
可以看到周围的细线条消失了,并且图像变细

形态学膨胀

可以通过膨胀操作将图像”变胖“
通过cv2.dilate( image,kernel,iterations)函数 可以实现
image:要操作的图片
kernel:膨胀的核函数
iterations:迭代次数,迭代次数越多,图像越明显

img = cv2.imread('dige.png')
kernal = np.ones((3,3),np.uint8)
dilate = cv2.dilate(erosion,kernel=kernal,iterations=1)

在这里插入图片描述
可以看出,图像整体变粗

开运算与闭运算

开运算:先腐蚀再膨胀

 img = cv2.imread('dige.png')
kernel = np.ones((3,3),np.uint8)
opening = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)

在这里插入图片描述
可以看出开运算后的图像,相比与原来的图像线条粗细没有变化,只是少了周围的细线条

闭运算:先膨胀再腐蚀


img = cv2.imread('dige.png')
kernel = np.ones((3,3),np.uint8)
closeing = cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel)

梯度运算:先把原图像膨胀和腐蚀得到两个图像,然后梯度图像 = 膨胀图像 - 腐蚀图像

pie = cv2.imread('pie.png')
kernel = np.ones((7,7),np.uint8)
gradient = cv2.morphologyEx(pie,cv2.MORPH_GRADIENT,kernel)

这里以一个圆的图像为例子
在这里插入图片描述
原图像是这样的在这里插入图片描述
经过梯度运算后只保留了边框出来

礼帽和黑帽

礼帽 = 原始输入 - 开运算结果
取出亮度低的地方
在这里插入图片描述

黑帽 = 闭运算 - 原始输入
取出亮度高的地方

img = cv2.imread('dige.png')
kernel = np.ones((3,3),np.uint8)
tophat = cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel)
black = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel)

在这里插入图片描述

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值