当前位置: 首页 > article >正文

OpenCV:形态学操作总结

目录

简述

1. 什么是形态学操作?

2. OpenCV 中的形态学操作

2.1 腐蚀

2.2 膨胀

2.3 开运算 

2.4 闭运算

2.5 形态学梯度

2.6 顶帽与黑帽

3. 形态学操作的应用场景总结


相关阅读

OpenCV:图像的腐蚀与膨胀-CSDN博客

OpenCV:开运算-CSDN博客

OpenCV:闭运算-CSDN博客

OpenCV:形态学梯度-CSDN博客

OpenCV:顶帽与黑帽运算-CSDN博客


简述

在图像处理中,形态学操作是一类针对图像结构的操作,主要用于分析和处理图像中的几何形状。它广泛应用于噪声去除、边缘提取、图像分割、目标提取等任务。OpenCV 提供了多种形态学操作接口,使得图像的形态特征可以灵活地调整。

本文将详细介绍 OpenCV 中常见的形态学操作,包括基本概念、常用操作、接口的使用方法,并通过实例展示如何在实际问题中应用这些操作。


1. 什么是形态学操作?

形态学操作是基于图像的像素形态进行的操作,主要涉及图像的局部区域。这些操作通常通过一个叫做 卷积核 的工具来定义如何处理图像中的每个像素。

形态学操作的基本思想:

  • 腐蚀:缩小或收缩图像中的物体区域。
  • 膨胀:扩展或增加物体区域的面积。
  • 开运算:先进行腐蚀,再进行膨胀,通常用于去除小物体噪声。
  • 闭运算:先进行膨胀,再进行腐蚀,通常用于填补小的孔洞。
  • 梯度运算:膨胀图像与腐蚀图像的差异,用于检测物体的边缘。

这些操作不仅能够增强图像的几何特征,还能够减少图像中的噪声,提升后续图像处理的准确性。


2. OpenCV 中的形态学操作

OpenCV 提供了多个函数来实现形态学操作,其中最常用的是以下几个:

2.1 腐蚀

腐蚀操作用于收缩图像中的前景物体区域。其作用是将每个像素点的值替换为其邻域的最小值,通常用于去除小的噪点。

cv2.erode(src, kernel, iterations=1)
  • src: 输入图像,通常是二值化图像。
  • kernel: 卷积核,用于定义腐蚀的形状和大小。
  • iterations: 腐蚀操作的次数,默认为 1。 

2.2 膨胀

膨胀操作是腐蚀的逆过程,作用是扩展前景物体的区域,通常用于填补物体内的小孔。

cv2.dilate(src, kernel, iterations=1)
  • src: 输入图像,通常是二值化图像。
  • kernel: 卷积核,用于定义膨胀的形状和大小。
  • iterations: 膨胀操作的次数,默认为 1。

2.3 开运算 

    开运算是先进行腐蚀再进行膨胀的操作。它通常用于去除图像中的小噪点,同时保留较大物体的形状。

    cv2.morphologyEx(src, cv2.MORPH_OPEN, kernel)
    •  src: 输入图像。
    • kernel: 卷积核。
    • cv2.MORPH_OPEN: 开运算的标识符。

    2.4 闭运算

    闭运算是先进行膨胀再进行腐蚀的操作。它通常用于填补图像中的小孔,保留较大的结构。

    cv2.morphologyEx(src, cv2.MORPH_CLOSE, kernel)
    • src: 输入图像。
    • kernel: 卷积核。
    • cv2.MORPH_CLOSE: 闭运算的标识符。 

    2.5 形态学梯度

    形态学梯度是膨胀与腐蚀的差异。它主要用于突出显示图像中的边缘。

    cv2.morphologyEx(src, cv2.MORPH_GRADIENT, kernel)
    • src: 输入图像。
    • kernel: 卷积核。
    • cv2.MORPH_GRADIENT: 梯度运算的标识符。 

    2.6 顶帽与黑帽

    顶帽运算:原始图像与开运算的差异,常用于提取图像中的小亮区域。

    cv2.morphologyEx(src, cv2.MORPH_TOPHAT, kernel)

    黑帽运算:闭运算与原始图像的差异,常用于提取图像中的小暗区域。

    cv2.morphologyEx(src, cv2.MORPH_BLACKHAT, kernel)

    3. 形态学操作的应用场景总结

    操作类型应用场景
    腐蚀去噪、细化边缘、分离相邻对象
    膨胀填补小孔、连接对象、加粗前景
    开运算去除小噪点、平滑前景边界
    闭运算填补暗孔、平滑前景边界
    梯度边缘检测、轮廓提取
    顶帽运算提取亮点、去除低频背景信息
    黑帽运算提取暗纹、增强低频阴影


    http://www.kler.cn/a/523886.html

    相关文章:

  • dify实现原理分析-rag-检索(Retrieval)服务的实现
  • 关于el-table翻页后序号列递增的组件封装
  • STM32 LED呼吸灯
  • 【LLM】deepseek多模态之Janus-Pro和JanusFlow框架
  • 【javaweb项目idea版】蛋糕商城(可复用成其他商城项目)
  • 记忆力训练day07
  • IO进程寒假作业DAY6
  • 洛谷U525322 优美区间
  • PHP EOF (Heredoc) 详解
  • 《多阶段渐进式图像修复》学习笔记
  • centos7安装SVN
  • Unity游戏(Assault空对地打击)开发(1) 创建项目和选择插件
  • LCD液晶屏的工作原理以及背光模组
  • 揭示Baklib企业内容管理系统CMS的核心功能与应用价值
  • 【Rust自学】16.3. 共享状态的并发
  • 学历赋
  • 动态规划DP 数字三角形模型(模型分析+例题分析+C++代码实现)(数字三角形、摘花生、最低通行费用、方格取数、传纸条)
  • 物联网工程与网络工程到底有什么关系?
  • 探索人工智能在计算机视觉领域的创新应用与挑战
  • games101-作业
  • 国内外大语言模型领域发展现状与预期
  • 硬件学习笔记--35 AD23的使用常规操作
  • HTB:Forest[WriteUP]
  • 算法随笔_19: 数组中的最长山脉
  • DeepSeek助力学术文献搜索!
  • 安装VMware17