Opencv学习笔记(十二):图片腐蚀和膨胀操作

本文介绍了腐蚀、膨胀操作在图像处理中的原理和应用,展示了使用OpenCV进行腐蚀和膨胀的代码实例,并深入解析了开运算和闭运算的概念,包括它们在图像形态学处理中的作用。通过实例演示,读者可以理解这些技术如何改变图像特征。
摘要由CSDN通过智能技术生成

腐蚀

原理:是在原图的小区域内取局部最小值。因为是二值化图,只有 0 和 255,所以小区域内有一个是 0 该像素点就为 0:

作用:图像中的物体变小

代码

erode(src, kernel, dst=None, anchor=None, iterations=None, borderType=None, borderValue=None)#腐蚀函数

import cv2
import numpy as np

# 腐蚀
image = cv2.imread('2.png')
kernel1 = np.ones((3,3),np.uint8)  # 腐蚀单元
kernel2 = np.ones((5,5),np.uint8)
kernel3 = np.ones((7,7),np.uint8)

erosion1 = cv2.erode(image, kernel1)  # 腐蚀函数
erosion2 = cv2.erode(image, kernel2)
erosion3 = cv2.erode(image, kernel3)

cv2.imshow("original", image)
cv2.imshow("erosion1", erosion1)
cv2.imshow("erosion2", erosion2)
cv2.imshow("erosion3", erosion3)

cv2.waitKey(0)

效果

在这里插入图片描述

膨胀

原理:膨胀与腐蚀相反,取的是局部最大值。
作用:先腐蚀后膨胀,连接两个分开的物体,图像中的物体变大。

代码

import cv2
import numpy as np

# 腐蚀
image = cv2.imread('3.jpg')
kernel1 = np.ones((3, 3), np.uint8)     # 3个不同尺度的膨胀单元
kernel2 = np.ones((5, 5), np.uint8)
kernel3 = np.ones((9, 9), np.uint8)

dilation1 = cv2.dilate(image, kernel1)    # 膨胀函数
dilation2 = cv2.dilate(image, kernel2)
dilation3 = cv2.dilate(image, kernel3)


cv2.imshow("original", image)
cv2.imshow("dilation1", dilation1)
cv2.imshow("dilation2", dilation2)
cv2.imshow("dilation3", dilation3)

cv2.waitKey(0)

效果

在这里插入图片描述

开运算/闭运算

开运算就是先腐蚀后膨胀,可以直接通过opencv的morphologyEx进行处理,cv2.MORPH_OPEN指定开运算

代码

开运算

import cv2
image = cv2.imread('2.png')
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (7, 7))
opening = cv2.morphologyEx(image, cv2.MORPH_OPEN, kernel)
cv2.imshow('original', image)
cv2.imshow('deal', opening)
cv2.waitKey(0)

闭运算
闭运算就是先膨胀后腐蚀,可以直接调用morphologyEx,cv2.MORPH_CLOSE指定闭运算

import cv2
import numpy as np
image = cv2.imread('2.png')
close_img = cv2.morphologyEx(image,cv2.MORPH_CLOSE,kernel=np.ones((7,7),np.uint8))
cv2.imshow('original', image)
cv2.imshow('deal', close_img)
cv2.waitKey(0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZZY_dl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值