首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

OpenCV-Python图像形态变换概述及morphologyEx函数介绍

  • 23-09-22 14:04
  • 3803
  • 10102
blog.csdn.net

☞ ░ 前往老猿Python博客 https://blog.csdn.net/LaoYuanPython ░

一、形态变换概念

图像形态变换又称为形态学图像处理、图像形态学,它是基于数学形态学(Mathematical Morphology)基础之上建立的图像处理技术。数学形态学是一种图像处理方法和理论,是计算机数字图像处理的一个重要研究领域,它建立在严格数学理论基础上的一门学科,并已应用在多门学科的数字图像分析和处理的过程中,基本思想是用具有一定形态的结构元素去量度和提取图像中的对应形状以达到对图像分析和识别的目的。数学形态学的应用可以简化图像数据,保持它们基本的形状特性,并除去不相干的结构。广泛应用于计算机文字识别、 计算机显微图像分析(如定量金相分析, 颗粒分析)、医学图像处理(例如细胞检测、心脏的运动过程研究、 脊椎骨癌图像自动数量描述)、图像编码压缩、工业检测(如食品检验和印刷电路自动检测)、材料科学、机器人视觉、汽车运动情况监测、指纹检测、经济地理、合成音乐和断层X光照像等领域。

数学形态学是由一组形态学的代数运算子组成的,它的基本运算有4个: 膨胀(或扩张)、腐蚀(或侵蚀)、开运算和闭运算, 它们在二值图像和灰度图像中各有特点。基于这些基本运算还可推导和组合成各种数学形态学实用算法,用它们可以进行图像形状和结构的分析及处理,包括图像分割、特征抽取、边界检测、 图像滤波、图像增强和恢复等。数学形态学方法利用一个称作结构元素的“探针”收集图像的信息,当探针在图像中不断移动时, 便可考察图像各个部分之间的相互关系,从而了解图像的结构特征。数学形态学基于探测思想与人的FOA(Focus Of Attention)的视觉特点有类似之处。作为探针的结构元素,可直接携带知识(形态、大小、甚至加入灰度和色度信息)来探测、研究图像的结构特点。

除了4个基本形态变换运算,其他常用的形态变换还包括顶帽、黑帽、梯度图等。

更多形态变换的介绍请参考《百度文库:数学形态学及其应用》。

二、OpenCV的形态变换支持

在OpenCV为形态变换提供了单独的函数,这个函数就是morphologyEx。

2.1、调用语法

morphologyEx(src, op, kernel, dst=None, anchor=None, iterations=None, borderType=None, borderValue=None)

2.2、参数说明

在《OpenCV-Python图像处理:腐蚀和膨胀原理及erode、dilate函数介绍》等系列博文中老猿详细介绍了腐蚀和膨胀的原理、算法、Python的模拟实现以及OpenCV函数的详细语法及应用,morphologyEx函数的参数只比腐蚀erode函数和膨胀dilate函数多了一个参数op,其他参数名及含义完全一样,在此不重复介绍。

  • op:为形态变换的类型,包括如下取值类型:
  • MORPH_ERODE:腐蚀,当调用morphologyEx使用MORPH_ERODE类型时,与调用腐蚀函数erode效果相同
  • MORPH_DILATE:膨胀,当调用morphologyEx使用MORPH_DILATE类型时,与调用膨胀函数dilate效果相同
  • MORPH_OPEN:开运算,对图像先进行腐蚀再膨胀,等同于dilate(erode(src,kernal)),开运算对图像的边界进行平滑、去掉凸起等
  • MORPH_CLOSE:闭运算,对图像先进行膨胀在腐蚀,等同于erode(dilate(src,kernal)),闭运算用于填充图像内部的小空洞、填充图像的凹陷等
  • MORPH_GRADIENT:梯度图,用膨胀图减腐蚀图,等同于dilate(src,kernal)−erode(src,kernal),可以用于获得图像中物体的轮廓
  • MORPH_TOPHAT:顶帽,又称礼帽,用原图像减去开运算后的图像,等同于src−open(src,kernal),可以用于获得原图像中比周围亮的区域
  • MORPH_BLACKHAT:黑帽,闭运算图像减去原图像,等同于close(src,kernal)−src,可以用于获取原图像中比周围暗的区域
  • MORPH_HITMISS:击中击不中变换,用于匹配处理图像中是否存在核对应的图像,匹配时,需要确保核矩阵非0部分和为0部分都能匹配,注意该变换只能处理灰度图像。

上面简单介绍了各种形态学操作的概念,将在后续博文中就每种变换进行详细介绍。

三、形态变换博文传送门

下面是老猿博文中与形态变换相关的博文列表:

  1. http://iyenn.com/rec/324890.html OpenCV-Python图像处理:腐蚀和膨胀原理及erode、dilate函数介绍
  2. http://iyenn.com/rec/324926.html OpenCV-Python图像运算变换处理:开运算和闭运算以及不同核矩阵的影响分析
  3. http://iyenn.com/rec/324891.html OpenCV-Python图像形态变换概述及morphologyEx函数介绍
  4. http://iyenn.com/rec/324927.html OpenCV-Python图像运算变换处理:形态学梯度运算及分类
  5. http://iyenn.com/rec/325150.html OpenCV-Python中预览超大图的程序实现方法
  6. http://iyenn.com/rec/324928.html OpenCV-Python图形图像处理:利用TopHat顶帽获取背景色中的噪点
  7. http://iyenn.com/rec/324929.html OpenCV-Python图形图像处理:利用黑帽去除图像浅色水印
  8. http://iyenn.com/rec/324533.html OpenCV-Python击中击不中HITMISS形态变换详解

更多OpenCV-Python的介绍请参考专栏《OpenCV-Python图形图像处理 》
专栏网址:http://iyenn.com/index/link?url=https://blog.csdn.net/laoyuanpython/category_9979286.html

关于老猿的付费专栏

老猿的付费专栏《使用PyQt开发图形界面Python应用 》(http://iyenn.com/index/link?url=https://blog.csdn.net/laoyuanpython/category_9607725.html)专门介绍基于Python的PyQt图形界面开发基础教程,付费专栏《moviepy音视频开发专栏》 (http://iyenn.com/index/link?url=https://blog.csdn.net/laoyuanpython/category_10232926.html)详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,两个专栏都适合有一定Python基础但无相关知识的小白读者学习。

付费专栏文章目录:《moviepy音视频开发专栏文章目录》(http://iyenn.com/rec/324326.html)、《使用PyQt开发图形界面Python应用专栏目录 》(http://iyenn.com/rec/324324.html)。

对于缺乏Python基础的同仁,可以通过老猿的免费专栏《专栏:Python基础教程目录》(http://iyenn.com/index/link?url=https://blog.csdn.net/laoyuanpython/category_9831699.html)从零开始学习Python。

如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

跟老猿学Python、学OpenCV!

☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython ░

文章知识点与官方知识档案匹配,可进一步学习相关知识
OpenCV技能树首页概览20473 人正在系统学习中
老猿Python
微信公众号
专注Python相关语言、图像音视频处理、AI
注:本文转载自blog.csdn.net的LaoYuanPython的文章"https://blog.csdn.net/LaoYuanPython/article/details/109556425"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top