【opencv-python】形态学转换—腐蚀
2021/10/1 11:40:51
本文主要是介绍【opencv-python】形态学转换—腐蚀,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
形态学操作主要包括腐蚀、膨胀、开运算、闭运算等,在opencv-python中,有相关函数可以满足要求,如cv2.erode(),cv2.dilate(),cv2.morphologyEx()等。形态学操作是根据图像形状进行的简单操作,一般情况下对二值化图像进行的操作。需要输入两个参数,一个是原始图像,第二个被称为结构化元素或核,它是用来决定操作的性质的。两个基本的形态学操作是腐蚀和膨胀,它们的变体构成了开运算、闭运算、梯度等,以下图为例逐一介绍。
首先对这张图进行腐蚀,代码如下:
import cv2 import numpy as np img = cv2.imread('j.png',0) kernel = np.ones((5,5),np.uint8) erosion = cv2.erode(img,kernel,iterations = 1)
运行效果为:
可见腐蚀效果比较明显。查看函数说明,如下图所示:
其原理为:**找kernel尺寸中图片区域中灰度值最小值,并原图片的中心值替换。**我们对其原理进行分析,人为构造一个小维度数组,以此代表一张图像,代码如下所示:
img = np.uint8([[1,2,3,4,5], [5,4,3,2,1], [2,4,6,8,10], [10,8,6,4,2], [5,10,15,10,5]]) kernel = np.ones((3,3),np.uint8) erosion = cv2.erode(img,kernel,iterations = 1) print('img:', img) print('erosion:', erosion)
运行结果为:
将原图片图示化,如下图所示:
可见,除了边缘以外的中部像素灰度值,均为以本体为中心3✖️3区域内的最小灰度值。而目标图像边缘的像素值,亦为kernel框大小范围内的最小像素值,只是可选择像素由于边缘效果减少了。
感谢支持,欢迎关注,丰富技术/学术内容持续更新!
opencv-python快速入门视频教程
这篇关于【opencv-python】形态学转换—腐蚀的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-03用FastAPI掌握Python异步IO:轻松实现高并发网络请求处理
- 2025-01-02封装学习:Python面向对象编程基础教程
- 2024-12-28Python编程基础教程
- 2024-12-27Python编程入门指南
- 2024-12-27Python编程基础
- 2024-12-27Python编程基础教程
- 2024-12-27Python编程基础指南
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型