"""
图像腐蚀:
1.图像二值化,将图像的灰度值根据阈值进行0,1(这里的0,1只是说明二值化的效果)处理得到的图像;
2.卷积核,对应信号处理中的高低频滤波器。常用numpy去设置,np.ones((m,n), np.uint8) 表示指定m*n的卷积核;
3.图像的腐蚀,cv2.erode(二值化图像, 卷积核, 迭代次数)
参考链接:
https://www.lizenghai.com/archives/28924.html
https://www.cnblogs.com/qianxia/p/11105883.html Python+OpenCV图像处理之腐蚀与膨胀
https://segmentfault.com/a/1190000015650320
"""
import cv2 as cv
import numpy as np
"""
腐蚀算法:变瘦
用kernel,像扫描图像的每一个素;用kernel与其覆盖的二值图像做 “与” 操作;如果都为1,结果图像的该像素为1;否则为0.
结果:使二值图像减小一圈
"""
def erode_demo(image):
print(image.shape)
gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
# threshold(输入, 阈值, 最大值, 阈值类型) 参考链接:https://blog.csdn.net/kaizhongwang/article/details/98478279
# cv.THRESH_OTSU:运算速度快
ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU) # 二值化
print(binary.shape)
cv.imshow("binary", binary)
# 获得卷积核(指定形状的卷积核)cv2.MORPH_RECT矩形, cv2.MORPH_ELLIPSE椭圆形, cv2.MORPH_CROSS十字形
kernel = cv.getStructuringElement(cv.MORPH_RECT, (5, 5))
# 进行图像腐蚀,默认迭代次数
dst = cv.erode(binary, kernel)
print(dst[:5, :5])
print(dst.shape)
cv.imshow("erode", dst)
img = cv.imread("D:\\Asus Computer\\pictures\\-4ea9585606a91d77.jpg") # 读取图片
# 原始图片
cv.imshow('orginal', img)
# 图像腐蚀
erode_demo(img)
ret = cv.waitKey(0) # 参数为0,则图片一直显示直到键盘按下键,并输出所按键的ascii值
print("press key:", ret)
cv.destroyAllWindows() # 删除建立的全部窗口,释放资源
图像腐蚀和膨胀_图像膨胀和腐蚀_
版权申诉
5星 · 超过95%的资源 119 浏览量
2021-10-03
08:54:59
上传
评论
收藏 3KB RAR 举报
何欣颜
- 粉丝: 68
- 资源: 4732
最新资源
- myeclipse-ci-2018.12.0-online-installer-windows.rar
- 量程自动切换数字电压表proteus仿真+程序资料_51单片机(论文+开题报告+源代码+详解图).zip
- 获取手机通讯录的实战应用(含SIM卡中的联系人).zip
- [交友会员]FriendFinderv2.1.2_friendfinderv2.1.2.rar
- JustShow Blog v1.2_justshowblog12_博客论坛网站开发模板(使用说明+源代码+html).zip
- 基于python的GUI学生信息管理系统(权限版)
- 数码管动态显示_单片机C语言实例(纯C语言源代码).zip
- K均值聚类算法,matlab编写,很好用.rar
- 无线遥控接收模块实验_单片机C语言实例(纯C语言源代码).zip
- 微信小程序设计(含源代码+解释文档)之企业应用.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
前往页