OpenCV的形态学操作

在计算机视觉中,形态学操作是一种基于集合论的图像处理技术,主要用于分析和处理图像的形状特征。OpenCV 提供了 cv2.morphologyEx() 函数,用于执行多种高级形态学操作。

复制代码
kernel = np.ones((15, 15), np.uint8)

1. 开运算(Opening)

  • 原理:先对图像进行腐蚀操作,再进行膨胀操作。腐蚀会缩小图像中的白色区域,去除小的白色噪点;膨胀会扩大图像中的白色区域,填补小的黑色空洞。因此,开运算主要用于去除小的白色噪点。

  • 应用:去除小的白色噪点,分离连接的物体,平滑较大物体的边界。同时,开运算不会明显改变物体的面积。

  • OpenCV 实现

    复制代码
    result = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)

2. 闭运算(Closing)

  • 原理:先对图像进行膨胀操作,再进行腐蚀操作。膨胀会扩大图像中的白色区域,填补小的黑色空洞;腐蚀会缩小图像中的白色区域,去除小的白色噪点。因此,闭运算主要用于填补小的黑色空洞。

  • 应用:填补小的黑色空洞,连接断裂的物体,平滑物体的边界。闭运算不会明显改变物体的面积。

  • OpenCV 实现

    result = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

3. 形态学梯度(Morphological Gradient)

  • 原理:计算膨胀图与腐蚀图之差。该操作可以突出图像中物体的边缘。

  • 应用:边缘检测,突出物体的边界。

  • OpenCV 实现

    result = cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel)

4. 顶帽(Top Hat)

  • 原理:原始图像与开运算结果之差。该操作可以突出图像中比原始图像亮的部分。

  • 应用:突出图像中的小亮区域。

  • OpenCV 实现

    result = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)

5. 黑帽(Black Hat)

  • 原理:闭运算结果与原始图像之差。该操作可以突出图像中比原始图像暗的部分。

  • 应用:突出图像中的小暗区域。

  • OpenCV 实现

    result = cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, kernel)

复制代码

6. 腐蚀(Erosion)

  • 原理:将图像中的白色区域缩小,去除小的白色噪点。

  • OpenCV 实现

    result = cv2.erode(img, kernel)

7. 膨胀(Dilation)

  • :将图像中的白色区域扩大,填补小的黑色空洞。

  • OpenCV 实现

    result = cv2.dilate(img, kernel)

总结

cv2.morphologyEx() 函数是 OpenCV 中用于执行高级形态学操作的函数。通过选择不同的操作类型和结构元素形态,可以实现不同的图像处理效果。在实际应用中,形态学操作常用于去噪、分割、边缘检测等任务。

相关推荐
沈浩(种子思维作者)9 分钟前
系统要活起来就必须开放包容去中心化
人工智能·python·flask·量子计算
2301_7903009614 分钟前
Python数据库操作:SQLAlchemy ORM指南
jvm·数据库·python
m0_7369191030 分钟前
用Pandas处理时间序列数据(Time Series)
jvm·数据库·python
getapi33 分钟前
实时音视频传输与屏幕共享(投屏)
python
java干货1 小时前
为什么 “File 10“ 排在 “File 2“ 前面?解决文件名排序的终极算法:自然排序
开发语言·python·算法
机器懒得学习1 小时前
智能股票分析系统
python·深度学习·金融
毕设源码-郭学长1 小时前
【开题答辩全过程】以 基于python的二手房数据分析与可视化为例,包含答辩的问题和答案
开发语言·python·数据分析
SR_shuiyunjian1 小时前
Python第三次作业
python
vx_biyesheji00011 小时前
豆瓣电影推荐系统 | Python Django 协同过滤 Echarts可视化 深度学习 大数据 毕业设计源码
大数据·爬虫·python·深度学习·django·毕业设计·echarts
鸽芷咕2 小时前
DrissionPage 成 CANN 仓库爆款自动化工具:背后原因何在?
运维·python·自动化·cann