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 中用于执行高级形态学操作的函数。通过选择不同的操作类型和结构元素形态,可以实现不同的图像处理效果。在实际应用中,形态学操作常用于去噪、分割、边缘检测等任务。

相关推荐
武天旭7 小时前
AI安全--AI大模型的毒性偏见与安全对齐实践
人工智能·python·深度学习
视觉小萌新8 小时前
AI Class 3 · Chapter 2-3:函数、异常、文件读写+JSON / JSONL 读写(小白版)
人工智能·python·json
小小张说故事9 小时前
Python 的 obj.x 到底按什么顺序找?拆开数据描述符、实例字典和 __getattr__ 那条优先级链
python
用户114818678948410 小时前
水印的实现方式逻辑
前端·python
陈嘿萌10 小时前
ECCV 2026 | CausalDrive:澳门大学×小米汽车,面向自动驾驶的实时因果世界模型
图像处理·人工智能·深度学习·计算机视觉·自动驾驶·学术研究与理论基础
贾公子10 小时前
从单条内容到账号维度——AIGC 风险评分的工程实现
后端·python
木头左11 小时前
【Python】不点浏览器发博客:逆向 CSDN 创作中心接口做 md-publish 技能
python·自动化·api
Tt有了t12 小时前
设计模式速查
java·python·设计模式
deepseek2312 小时前
Python日志拖慢请求?QueueHandler排队、丢失与退出实测
python·性能优化·logging·后端开发·queuehandler
用户912940468484212 小时前
Codex 从零到能交付(05):第一次改代码:生成一个文件清单脚本
python