Opencv中的腐蚀借鉴了自然界中的腐蚀概念,opencv腐蚀原理。腐蚀的卷积核是全1的矩阵。
 
 
腐蚀的api:eroce(img,knernel,iterations=1)
img:需要腐蚀的图片
knernel:卷积核大小,卷积核越大腐蚀效果越明显
iterations:腐蚀次数
 
import cv2
import numpy as np


# 导入一张图
img=cv2.imread('C:\\Users\\mk\\Desktop\\1.jpg')
# 创建卷积核
kernel=np.ones((7,7),np.uint8)
# 腐蚀图片
dst=cv2.erode(img,kernel=kernel,iterations=5)

# 显示图片
cv2.imshow('img',img)
cv2.imshow('dst',dst)
cv2.waitKey(0)

膨胀运算

膨胀api:dilate(img,kernel,iterations=1)
img:需要膨胀的图片
knernel:卷积核大小,卷积核越大膨胀效果越明显
iterations:膨胀次数
 
import cv2
import numpy as np


# 导入一张图
img=cv2.imread('C:\\Users\\mk\\Desktop\\1.jpg')
# 创建卷积核
kernel=cv2.getStructuringElement(cv2.MORPH_RECT,(7,7))
# 膨胀图片
dst=cv2.dilate(img,kernel=kernel,iterations=1)

# 显示图片
cv2.imshow('img',img)
cv2.imshow('dst',dst)
cv2.waitKey(0)

开运算

开运算=腐蚀+膨胀
开运算需要2步,先腐蚀再膨胀,我们只需要调用开运算的api就可以一次完成。开运算最大的用处就是降噪。
开运算api:morphologyEx(img,MORPH_OPEN,kernel)
img:需要开运算的图片
MORPH_OPEN:代表形态学的一种开运算
kernel:卷积核,噪点大可以选择大点的卷积核
 
import cv2
import numpy as np


# 导入一张图
img=cv2.imread('C:\\Users\\mk\\Desktop\\1.jpg')
# 创建卷积核
kernel=cv2.getStructuringElement(cv2.MORPH_RECT,(5,5))
# 开运算
dst=cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)

# 显示图片
cv2.imshow('img',img)
cv2.imshow('dst',dst)
cv2.waitKey(0)

闭运算

闭运算=膨胀+腐蚀
闭运算主要解决的问题是,如果图片里边有很多的噪点,闭运算就可以将里边的噪点消除掉。
闭运算api:morphologyEx(img,MORPH_CL.OSE,kernel)
 
import cv2
import numpy as np


# 导入一张图
img=cv2.imread('C:\\Users\\mk\\Desktop\\1.jpg')
# 创建卷积核
kernel=cv2.getStructuringElement(cv2.MORPH_RECT,(5,5))
# 闭运算
dst=cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel)

# 显示图片
cv2.imshow('img',img)
cv2.imshow('dst',dst)
cv2.waitKey(0)

形态学梯度

梯度=原图-腐蚀
梯度计算出的结果往往是一个图形的边缘。
 
梯度api:morphologyEx(img,MORPH_GRADIENT,kernel)
 
import cv2
import numpy as np


# 导入一张图
img=cv2.imread('C:\\Users\\mk\\Desktop\\1.jpg')
# 创建卷积核
kernel=cv2.getStructuringElement(cv2.MORPH_RECT,(3,3))
# 梯度
dst=cv2.morphologyEx(img,cv2.MORPH_GRADIENT,kernel)

# 显示图片
cv2.imshow('img',img)
cv2.imshow('dst',dst)
cv2.waitKey(0)

顶帽运算

顶帽运算=原图-开运算
顶帽运算的作用:假如原图中有一个大的物体和一些小的物体,想要得到小的物体,即可使用顶帽运算。
顶帽运算api:morphologyEx(img,MORPH_TOPHAT,kernel)
 
import cv2
import numpy as np


# 导入一张图
img=cv2.imread('C:\\Users\\mk\\Desktop\\1.jpg')
# 创建卷积核
kernel=cv2.getStructuringElement(cv2.MORPH_RECT,(13,13))
# 顶帽运算
dst=cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel)

# 显示图片
cv2.imshow('img',img)
cv2.imshow('dst',dst)
cv2.waitKey(0)

黑帽运算

黑帽运算=原图-闭运算
黑帽运算的主要作用是将大图片内的小噪点找出来。
 
黑帽运算api:morphologyEx(img,MORPH_BLACKHAT,kernel)
 
import cv2
import numpy as np


# 导入一张图
img=cv2.imread('C:\\Users\\mk\\Desktop\\1.jpg')
# 创建卷积核
kernel=cv2.getStructuringElement(cv2.MORPH_RECT,(13,13))
# 黑帽运算
dst=cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel)

# 显示图片
cv2.imshow('img',img)
cv2.imshow('dst',dst)
cv2.waitKey(0)
评论
头像
验证码:
相关推荐

七年之痒是什么意思

520送什么给女友

第一次见女方父母送什么好




如果未经特殊说明,本站内容皆为原创,转载内容如果侵犯了您的权益,如有侵权请联系管理员删除
联系QQ:2380712278

备案号:皖ICP备19012824号