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

    浏览量

    40449
  • OpenCV
    +关注

    关注

    31

    文章

    634

    浏览量

    41338

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

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

收藏 人收藏

    评论

    相关推荐

    AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV

    的质量,使得图像更适合人类观察或者为后续的分析做准备。 方法:通常涉及像素级别的操作,比如调整亮度、对比度、颜色校正、滤波(如高斯模糊、中值滤波去噪)、边缘检测、形态学变换(膨胀、腐蚀)等。 计算机视觉
    发表于 12-14 09:31

    【AI实战项目】基于OpenCV的“颜色识别项目”完整操作过程

    适用于哪些场景,然后通过Python编写代码来实现这些算法,并应用于实际项目中,实现图像的检测、识别、分类、定位、测量等目标。华清远见【python+OpenCV
    的头像 发表于 12-09 16:42 287次阅读
    【AI实战项目】基于<b class='flag-5'>OpenCV</b>的“颜色识别项目”完整<b class='flag-5'>操作</b>过程

    基于OpenCV的拆分和合并图像通道实验案例分享_基于RK3568教学实验箱

    一、实验目的 本节视频的目的是了解图像通道的概念,学习OpenCV的基本操作,并掌握通过OpenCV实现拆分和合并
    发表于 12-03 14:27

    RK3568 + OpenCV 会碰撞出什么火花?案例详解:2-1 基于OpenCV的画线实验

    一系列 C 函数和少量 C++ 类构成,同时提供Python、Ruby、MATLAB等语言的接口,实现图像处理和计算机视觉方面的很多通用算法。
    发表于 12-03 14:09

    一个月速成python+OpenCV图像处理

    OpenCV是一个广受欢迎且极为流行的计算机视觉库,它因其强大的功能、灵活性和开源特性而在开发者和研究者备受青睐。学习OpenCV主要就是学习里面的计算机视觉算法。要学习这些算法的原理,知道它们
    的头像 发表于 11-29 18:27 123次阅读
    一个月速成python+<b class='flag-5'>OpenCV</b><b class='flag-5'>图像</b>处理

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

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

    opencv图像识别有什么算法

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

    opencv-python和opencv一样吗

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

    opencv的主要功能有哪些

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

    OpenCV图像卷积与滤波详解

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

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

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

    ELF 1技术贴|如何移植OpenCV

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

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

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

    OpenCV4图像分析之BLOB特征分析

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