OpenCV-Python图像形态变换概述及morphologyEx函数介绍
☞ ░ 前往老猿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部分都能匹配,注意该变换只能处理灰度图像。
上面简单介绍了各种形态学操作的概念,将在后续博文中就每种变换进行详细介绍。
三、形态变换博文传送门
下面是老猿博文中与形态变换相关的博文列表:
- https://blog.csdn.net/LaoYuanPython/article/details/109441709 OpenCV-Python图像处理:腐蚀和膨胀原理及erode、dilate函数介绍
- https://blog.csdn.net/LaoYuanPython/article/details/109984045 OpenCV-Python图像运算变换处理:开运算和闭运算以及不同核矩阵的影响分析
- https://blog.csdn.net/LaoYuanPython/article/details/109556425 OpenCV-Python图像形态变换概述及morphologyEx函数介绍
- https://blog.csdn.net/LaoYuanPython/article/details/109768675 OpenCV-Python图像运算变换处理:形态学梯度运算及分类
- https://blog.csdn.net/LaoYuanPython/article/details/110195287 OpenCV-Python中预览超大图的程序实现方法
- https://blog.csdn.net/LaoYuanPython/article/details/110223709 OpenCV-Python图形图像处理:利用TopHat顶帽获取背景色中的噪点
- https://blog.csdn.net/LaoYuanPython/article/details/110294445 OpenCV-Python图形图像处理:利用黑帽去除图像浅色水印
- https://blog.csdn.net/LaoYuanPython/article/details/110676764 OpenCV-Python击中击不中HITMISS形态变换详解
更多OpenCV-Python的介绍请参考专栏《OpenCV-Python图形图像处理 》
专栏网址:https://blog.csdn.net/laoyuanpython/category_9979286.html
关于老猿的付费专栏
老猿的付费专栏《使用PyQt开发图形界面Python应用 》(https://blog.csdn.net/laoyuanpython/category_9607725.html)专门介绍基于Python的PyQt图形界面开发基础教程,付费专栏《moviepy音视频开发专栏》 (https://blog.csdn.net/laoyuanpython/category_10232926.html)详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,两个专栏都适合有一定Python基础但无相关知识的小白读者学习。
付费专栏文章目录:《moviepy音视频开发专栏文章目录》(https://blog.csdn.net/LaoYuanPython/article/details/107574583)、《使用PyQt开发图形界面Python应用专栏目录 》(https://blog.csdn.net/LaoYuanPython/article/details/107580932)。
对于缺乏Python基础的同仁,可以通过老猿的免费专栏《专栏:Python基础教程目录》(https://blog.csdn.net/laoyuanpython/category_9831699.html)从零开始学习Python。
如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。
跟老猿学Python、学OpenCV!
☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython ░
OpenCV-Python图像形态变换概述及morphologyEx函数介绍相关推荐
- pythonopencv读取图像属性_2、OpenCV Python 图像属性获取
__author__ = "WSX" import cv2 as cv import numpy as np image = cv.imread("1.JPG" ...
- OpenCV—python 图像相似度算法(dHash,方差)
文章目录 一.SIFT综述 二.哈希算法(perceptual hash algorithm) 2.1 相似图片检测步骤: 2.2 代码实现 三.使用方差检测图像相似度 3.1 实现步骤 3.2 代码 ...
- 『Python核心技术与实战』pandas.DataFrame()函数介绍
pandas.DataFrame()函数介绍! 文章目录 一. 创建DataFrame 1.1. numpy创建 1.2. 直接创建 1.3. 字典创建 1.4. Series和DataFrame 二 ...
- opencv python 图像形态学操作/图像腐蚀/图像膨胀/开运算/闭运算/顶帽/黑帽
Morphological Transformations 1图像腐蚀 腐蚀的基本思想:侵蚀前景物体的边界(总是试图保持前景为白色):内核在图像中滑动(如在2D卷积中).只有当内核下的所有像素都是1时 ...
- opencv python 图像缩放/图像平移/图像旋转/仿射变换/透视变换
Geometric Transformations of Images 1图像转换 OpenCV提供了两个转换函数cv2.warpAffine和cv2.warpPerspective,可以使用它们进行 ...
- 【算法+OpenCV】图像极坐标变换及基于OpenCV的实现
在医学图像处理,尤其是在处理血管断层扫描类(如OCT.IVUS等)图像的过程中,不可避免的会使用到极坐标变换,也即是我们通常所说的"方转圆".同样,我们可以使用极坐标变换的反变换实 ...
- opencv(python)------图像无缝克隆、对比度脱色、修复、HDR成像、非真实感渲染(三)
1. 基于opencv的无缝克隆 #python output = cv2.seamlessClone(src, dst, mask, center, flags) #c++ seamlessClon ...
- OpenCV—Python 图像指定区域裁剪
文章目录 一.指定图像位置的裁剪处理 二.批量处理-指定图像位置的裁剪 三.多进程(加快处理) 在工作中.在做数据集时,需要对图片进行处理,照相的图片我们只需要特定的部分,所以就想到裁剪一种所需的部分 ...
- OpenCV—Python 图像加减乘除-逻辑运算
一.图像逻辑运算 1.1 add-subtract-图像矩阵加减运算 """ cv2.add(src1, src2, dst=None, mask=None, dtype ...
最新文章
- 搭建Harbor 2.x仓库 - docker私仓搭建
- 01-Windows Server 2012 R2 远程桌面服务部署指南
- python开发pandas_二、Python开发---33、pandas(1)
- 华科计算机课程设计,华中科大操作系统课程设计报告(附源码).doc
- idea无法忍受_不要成为无法忍受的软件开发人员
- IIS6.0应用程序池回收和工作进程【转:http://www.cnblogs.com/freshman0216/archive/2008/06/02/1212460.html】...
- Java版单链表讲解
- Android 屏幕旋转的多种状态
- 三角形外接圆圆心计算公式
- 证件照缩小为20k大小
- qq邮箱绑定重庆大学邮箱服务器,电子邮箱常见问题
- blackman窗 matlab,【matlab】矩形窗/三角窗/hanning窗/hamming窗/blackman窗的频率响应图...
- pta第六章错题函数and编程
- Python判断一个正整数是否为素数的算法
- ZBrush常用笔刷
- 大数据开发平台-数据同步服务
- BDTC2014中国大数据技术大会 会议记录
- Autofac之类型注册
- 安卓开发问题之 Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication
- 字节流和字符流的用法