形态学操作

1.连通性的两个必要性条件是指两个图像的位置是否相邻,他们的灰度值是否符合相似准则

2.膨胀和腐蚀:其实就是将图像的高亮区域变大和变小,膨胀是变大,腐蚀是变小

膨胀通过cv.dilate(img,kernel,iterational)来实现

参数:

img:图像名称

kernel:核结构即核函数,kernel = np.ones((5,5),np.uint8)#(5,5)表示比例,np.uint8是指数据类型

复制代码
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
img1 = cv.imread('image1.jpg',1)
#获取核函数kernel
kernel = np.ones((5,5),np.uint8)
#获取膨胀图像后的变量
img_dilate = cv.dilate(img1,kernel,1)#iteration膨胀次数默认为1
plt.imshow(img_dilate[:,:,::-1])
plt.show()
#获取腐蚀图像后的变量
img_dilate = cv.erode(img1,kernel,1)#iteration膨胀次数默认为1
plt.imshow(img_erode[:,:,::-1])
plt.show()
复制代码

2.开闭运算:  开闭运算就是像膨胀和腐蚀按照一定顺序来处理的

开运算就是先腐蚀后膨胀,也就是消除小区域的小白点

闭运算就是先膨胀后腐蚀,消除空洞也就是小黑点

API:cv.morplyEx(img,op,kernel)

参数:op:处理运算:如果是开运算就是MORPH_OPEN,闭运算是MORPH_CLOSE

复制代码
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
img1 = cv.imread('image1.jpg',1)
plt.imshow(img1[:,:,::-1])
plt.show()
#开运算
kernel = np.ones((5,5),np.uint8)
Open = cv.morphologyEx(img1,cv.MORPH_OPEN,kernel)
plt.imshow(Open[:, : , ::-1])
plt.show()
#闭运算
kernel = np.ones((5,5), np.uint8)
Close = cv.morphologyEx(img1,cv.MORPH_CLOSE,kernel)
plt.imshow(Open[:, :, ::-1])
plt.show()
复制代码

3.黑帽运算和礼帽运算:

礼帽运算就是分离临近去高亮部分

黑帽运算就是分离临近区暗黑部分

API:cv。morphologyEx(img,op,kernel)

参数:img:要处理的图像

op:方式:

礼帽运算:cv,MORPH_TOPATH

黑帽运算:cv,MORPH_BLACKHAT

复制代码
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
img1 = cv.imread('image1.jpg',1)
plt.imshow(img1[:,:,::-1])
plt.show()
#黑帽运算
kernel = np.ones((5,5),np.uint8)
Open = cv.morphologyEx(img1,cv.MORPH_OPEN,kernel)
black = cv.morphologyEx(Open,cv.MORPH_BLACKHAT,kernel)
plt.imshow(black[:, : , ::-1])
plt.show()
#礼帽运算
kernel = np.ones((5,5), np.uint8)
Close = cv.morphologyEx(img1,cv.MORPH_CLOSE,kernel)
top = cv.morphologyEx(Close,cv.MORPH_TOPHAT,kernel)
plt.imshow(top[:, :, ::-1])
plt.show()
复制代码

 

posted @   求知律己  阅读(72)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示