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

    文章

    1063

    浏览量

    40041
  • OpenCV
    +关注

    关注

    29

    文章

    611

    浏览量

    40778

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    ELF 1技术贴|如何移植OpenCV

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

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

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

    OpenCV4.8 CUDA编程代码教程

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

    OpenCV图像旋转函数操作原理及基本技巧

    旋转涉及到两个问题,一个是图像旋转之后的大小会发生改变,会产生背景,通过背景填充方式都是填充黑色,此外旋转还是产生像素的位置迁移,新的位置像素需要通过插值计算获得,常见的插值方式有最近邻、线性插值、立方插值等。
    的头像 发表于 11-14 09:40 286次阅读
    <b class='flag-5'>OpenCV</b>中<b class='flag-5'>图像</b>旋转函数<b class='flag-5'>操作</b>原理及基本技巧

    机器视觉之图像增强和图像处理

    对原始获取图像进行一系列的运算处理,称为图像处理。图像处理是机器视觉技术的方法基础,包括图像增强、边缘提取、图像分割、
    发表于 10-23 10:43 229次阅读
    机器视觉之<b class='flag-5'>图像</b>增强和<b class='flag-5'>图像</b>处理

    机器视觉:图像处理技术、图像增强技术

    对原始获取图像进行一系列的运算处理,称为图像处理。图像处理是机器视觉技术的方法基础,包括图像增强、边缘提取、图像分割、
    发表于 10-20 10:17 372次阅读
    机器视觉:<b class='flag-5'>图像</b>处理技术、<b class='flag-5'>图像</b>增强技术

    OpenCV的BGR格式,在libyuv对应的那个格式?OpenCV的RGB格式呢?

    OpenCV的BGR格式,在libyuv对应的那个格式?OpenCV的RGB格式呢?
    发表于 09-19 06:00

    用迅为RK3568开发板使用OpenCV处理图像颜色通道提取ROI

    本小节代码在配套资料“iTOP-3568 开发板\\\\03_【iTOP-RK3568 开发板】指南教程 \\\\04_OpenCV 开发配套资料\\\\07”目录下,如下图所示: 在计算机的色彩图像
    发表于 09-01 10:45

    OpenCV库在图像处理和深度学习中的应用

    本文深入浅出地探讨了OpenCV库在图像处理和深度学习中的应用。从基本概念和操作,到复杂的图像变换和深度学习模型的使用,文章以详尽的代码和解释,带领大家步入
    的头像 发表于 08-18 11:33 491次阅读

    [译]在RISC-V CPU上运行OpenCV

    /opencv/opencv/tree/master/modules/core/include/opencv2/core/hal。在RISC-V的情况下,我们提供两个并行
    发表于 06-22 18:54

    【米尔MYD-JX8MMA7开发板-ARM+FPGA架构试用体验】 十二、提取车牌

    操作操作可以去除图像内的噪声,可以使用形态学函数morphologyEx配合参数cv2.MORPH_OPEN完成。滤波:操作
    发表于 06-01 20:38

    树莓派与QT上位机的实时图像传输实例

    并通过Qlabel控件显示出来。 树莓派作为客户端,其通过opencv捕获到摄像头的图像,捕获图像之后可以根据自己需求对图像进行滤波、形态学
    发表于 05-26 16:58 3次下载
    树莓派与QT上位机的实时<b class='flag-5'>图像</b>传输实例

    形态学运算与仿真:图像处理中形态学操作的简单解释

    形态学图像处理领域的一个分支,主要用于描述和处理图像中的形状和结构。形态学可以用于提取图像中的特征、消除噪声、改变
    的头像 发表于 05-23 15:52 769次阅读
    <b class='flag-5'>形态学</b>运算与仿真:<b class='flag-5'>图像</b>处理中<b class='flag-5'>形态学</b><b class='flag-5'>操作</b>的简单解释

    CMake在Linux 6.1.1-1.0.0搜索包opencv损坏了吗?

    5.15.71_2.2.0 版的 Linux SDK(图像 imx-image-multimedia),一切正常。 我尝试迁移到版本 6.1.1_1.0.0 的 Linux SDK,但它不再起作用了。使用图像
    发表于 05-09 11:32