0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenCV中实现了图像形态学什么常见操作?

新机器视觉 来源:视学算法 作者:视学算法 2021-05-27 14:11 次阅读

图像形态学是图像处理的分支学科,在二值图像处理中占有重要地位、OpenCV中实现了图像形态学如下常见操作:

-膨胀操作

-腐蚀操作

-开操作

-闭操作

-击中击不中操作

-黑帽操作

-顶帽操作

-梯度操作

在开始相关API与代码演示之前,首先要加载图片然后把图像从彩色图像转换为二值图像,实现代码如下:

144ab1d0-be50-11eb-9e57-12bb97331649.png

结构元素

图像形态学操作,必须有结构元素才可以,不同形状的结构元素对同样的图像进行相同的操作可以得到不同的输出结果,所以在形态学操作中结构元素的选择至关重要。OpenCV中获取结构元素的相关代码如下:

1454132e-be50-11eb-9e57-12bb97331649.png

腐蚀操作

腐蚀操作是将结构元素覆盖下的中心像素点的值用最小值替换,得到结果即为腐蚀操作输出图像,通过OpenCV API调用实现腐蚀操作的代码如下

145ef15e-be50-11eb-9e57-12bb97331649.png

膨胀操作

膨胀操作是将结构元素覆盖下的中心像素点的值用最大值替换,得到结果即为膨胀操作输出图像,通过OpenCV API调用实现膨胀操作的代码如下

147c67de-be50-11eb-9e57-12bb97331649.png

开操作

开操作是首先对图像进行腐蚀操作,然后在对图像进行膨胀操作,开操作可以断开两个对象的连接性。实现对象分离。开操作的代码实现如下:

1490d444-be50-11eb-9e57-12bb97331649.png

闭操作

闭操作使用结构元素对图像先膨胀后腐蚀,正好跟开操作的顺序相反,但是闭操作绝对不是开操作的反操作结果。闭操作可以消除图像中背景小点。OpenCV中开操作代码演示如下:

14af24c6-be50-11eb-9e57-12bb97331649.png

击中击不中操作(Hit and Miss)

根据结构元素的选择被击中的区域将会被保留、而没有被击中的区域则被去掉OpenCV中代码演示如下:

14c81756-be50-11eb-9e57-12bb97331649.png

黑帽操作

黑帽操作的结果是图像闭操作与源图像之间的不同,OpenCV中实现图像黑帽操作的代码如下:

14e8c082-be50-11eb-9e57-12bb97331649.png

顶帽操作

顶帽操作是源图像与开操作结果之间的差异,顶帽操作可以显示出图像中区域之间微小不同之处。OpenCV顶帽操作的代码演示如下:

14fe2eea-be50-11eb-9e57-12bb97331649.png

梯度操作

形态学的梯度操作是图像膨胀与腐蚀结果之间的不同,常见的梯度操作是基本梯度-是膨胀与腐蚀结果之间不同。OpenCV的代码演示如下:

1512385e-be50-11eb-9e57-12bb97331649.png

函数说明

morphologyEx- 形态学操作函数

-第一个参数表示输入图像,通道数目任意,位数可以是8、16、32

-第二个参数表示输出图像,通道数与位数与输入图像一致

-第三个参数表示是那种形态学操作

-第四个参数表示结构元素是什么

上述举例都是基于矩形结构元素5x5窗口大小,此外文章中还定义另外两种结构元素,感兴趣的读者可以自己尝试。

原文标题:OpenCV中图像形态学操作

文章出处:【微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像
    +关注

    关注

    2

    文章

    1083

    浏览量

    40410
  • OpenCV
    +关注

    关注

    30

    文章

    626

    浏览量

    41250

原文标题:OpenCV中图像形态学操作

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    手写图像模板匹配算法在OpenCV实现

    OpenCV的模板匹配是支持基于NCC相似度查找的,但是不是很好用,一个主要的原因是查找最大阈值,只能匹配一个,自己比对阈值,又导致无法正确设定阈值范围,所以问题很多。于是我重新写了纯Python版本的NCC图像模板匹配的代码
    的头像 发表于 11-11 10:12 149次阅读
    手写<b class='flag-5'>图像</b>模板匹配算法在<b class='flag-5'>OpenCV</b><b class='flag-5'>中</b>的<b class='flag-5'>实现</b>

    OpenCV图像识别C++代码

    的头文件 在您的C++代码,包含以下必要的头文件: # include # include # include # include # include # include # include 读取图像
    的头像 发表于 07-16 10:42 1756次阅读

    opencv图像识别有什么算法

    OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,提供大量的图像处理和计算机视觉相关的算法。以下是一些常见
    的头像 发表于 07-16 10:40 807次阅读

    opencv-python和opencv一样吗

    不一样。OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它提供大量的图像和视频处理功能。OpenCV
    的头像 发表于 07-16 10:38 950次阅读

    opencv的主要功能有哪些

    OpenCV提供丰富的图像处理功能,包括图像的读取、显示、保存、转换等。此外,OpenCV还支持图像
    的头像 发表于 07-16 10:35 1323次阅读

    什么是机器视觉opencv?它有哪些优势?

    机器视觉(Machine Vision)是一种利用计算机和图像处理技术来模拟人类视觉系统的功能,实现图像的识别、分析和理解的技术。OpenCV(Open Source Compute
    的头像 发表于 07-16 10:33 670次阅读

    基于深度学习的缺陷检测方案

    图像预处理通常包括直方图均衡化、滤波去噪、灰度二值化、再次滤波几部分,以得到前后景分离的简单化图像信息;随后利用数学形态学、傅里叶变换、Gabor 变换等算法以及机器学习模型完成缺陷的标记与检测。
    发表于 04-23 17:23 802次阅读
    基于深度学习的缺陷检测方案

    OpenCV图像卷积与滤波详解

    图像的滤波器是一种用于增强或抑制图像特定特征的工具。它通常是一个小矩阵,定义了如何对图像的像素进行
    的头像 发表于 03-26 14:57 1470次阅读
    <b class='flag-5'>OpenCV</b><b class='flag-5'>图像</b>卷积与滤波详解

    如何实现PIL和OpenCV之间图像数据的转换呢?

    PIL图像数据格式转换成OpenCV图像数据格式
    的头像 发表于 02-25 13:43 1145次阅读

    ELF 1技术贴|如何移植OpenCV

    OpenCV拥有丰富的常用图像处理函数库,采用C/C++语言编写,可以运行在Linux、Windows、Mac等操作系统上流畅运行,并能够快速
    的头像 发表于 01-09 13:55 354次阅读
    ELF 1技术贴|如何移植<b class='flag-5'>OpenCV</b>

    使用图像处理库OpenCV从摄像头获取数据并在PyQt5上显示出来

    OpenCV能够处理图像、视频、深度图像等各种类型的视觉数据
    的头像 发表于 01-05 17:32 2339次阅读
    使用<b class='flag-5'>图像</b>处理库<b class='flag-5'>OpenCV</b>从摄像头获取数据并在PyQt5上显示出来

    OpenCV4图像分析之BLOB特征分析

    BLOB是图像灰度块的一种专业称呼,更加变通一点的可以说它跟我们前面二值图像分析的联通组件类似,通过特征提取实现常见的各种灰度BLOB对象
    的头像 发表于 12-28 12:28 1215次阅读
    <b class='flag-5'>OpenCV</b>4<b class='flag-5'>图像</b>分析之BLOB特征分析

    Python调用OpenCV实现图像腐蚀案例

    图像的膨胀(Dilation)和腐蚀(Erosion)是两种基本的形态学运算,主要用来寻找图像的极大区域和极小区域。其中膨胀类似于“领域扩张”,将
    的头像 发表于 12-20 10:20 1054次阅读
    Python调用<b class='flag-5'>OpenCV</b><b class='flag-5'>实现</b><b class='flag-5'>图像</b>腐蚀案例

    OpenCV边缘模板匹配算法原理详解

    OpenCV自带的模板匹配算法,完全是像素基本的模板匹配,特别容易受到光照影响,光照稍微有所不同,该方法就会歇菜!搞得很多OpenCV初学者刚学习到该方法时候很开心,一用该方法马上
    的头像 发表于 12-07 10:56 1319次阅读
    <b class='flag-5'>OpenCV</b>边缘模板匹配算法原理详解

    OpenCV4.8 CUDA编程代码教程

    OpenCV4支持通过GPU实现CUDA加速执行,实现OpenCV图像处理程序的加速运行,当前支持加速的模块包括如下。
    的头像 发表于 12-05 09:56 981次阅读
    <b class='flag-5'>OpenCV</b>4.8 CUDA编程代码教程