形态学中的8种操作

这篇具有很好参考价值的文章主要介绍了形态学中的8种操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

形态学中的8种操作

OpenCV的morphologyEx函数提供了以下8种形态学操作:

  1. MORPH_ERODE(腐蚀操作):

该操作通过将核与图像上的每个像素进行卷积,计算核覆盖下的像素的最小值,并将结果写入输出图像中。该操作能够减小图像中的亮度和尺寸,并能够消除小的噪点。

实际应用:去除图像中的细小物体,消除图像中的噪点,分割图像中的前景和背景等。

  1. MORPH_DILATE(膨胀操作):

该操作通过将核与图像上的每个像素进行卷积,计算核覆盖下的像素的最大值,并将结果写入输出图像中。该操作能够增加图像中的亮度和尺寸,并能够填充小的空洞。

实际应用:扩张图像中的前景区域,填充图像中的空洞,连接相邻的物体等。

  1. MORPH_OPEN(开运算):

该操作先对图像进行腐蚀操作,然后再对腐蚀后的图像进行膨胀操作,能够消除小的物体和细小的噪点,同时保持物体的大小和形状。

实际应用:去除图像中的细小物体和噪点,平滑图像中的物体边缘等。

  1. MORPH_CLOSE(闭运算):

该操作先对图像进行膨胀操作,然后再对膨胀后的图像进行腐蚀操作,能够填充小的空洞和连接相邻的物体,同时保持物体的大小和形状。

实际应用:填充图像中的空洞,连接相邻的物体,平滑图像中的物体边缘等。

  1. MORPH_GRADIENT(形态学梯度):

该操作通过对输入图像进行膨胀和腐蚀操作,计算两个结果之间的差异,得到输入图像中物体的边缘信息。

实际应用:检测图像中物体的边缘,提取图像中物体的轮廓等。

  1. MORPH_TOPHAT(顶帽运算):

该操作通过将原始图像减去进行开运算后的图像,得到输入图像中的小细节信息。

实际应用:检测图像中小的物体和细节,提取图像中的纹理信息等。

  1. MORPH_BLACKHAT(黑帽运算):

该操作通过将进行闭运算后的图像减去原始图像,得到输入图像中的大细节信息。

实际应用:检测图像中大的物体和细节,提取图像中的纹理信息等。

  1. MORPH_HITMISS(命中或不命中):

该操作通过将原始图像与两个核进行卷积,分别得到命中和不命中的像素,并将结果写入输出图像中。该操作可以用于检测图像中的特定形状。

实际应用:检测图像中的特定形状,比如角点、T形交叉等。

OpenCV的morphologyEx函数是图像处理中常用的形态学操作函数,用于处理二值图像,通过改变结构元素的形状和大小来得到不同的结果。morphologyEx函数提供了8种不同的操作类型,每种操作类型都有不同的参数和效果。

以下是每种操作类型的详细说明和公式:

  1. 腐蚀操作(MORPH_ERODE):

腐蚀操作可以使物体边界向内侵蚀,使物体变小。腐蚀操作的参数包括输入图像、输出图像、结构元素和迭代次数。在二值图像中,腐蚀操作可以用于消除小的噪点或者分离相互接触的物体。

腐蚀操作的公式如下:

d s t ( x , y ) = min ⁡ ( x ′ , y ′ ) ∈ S s r c ( x + x ′ , y + y ′ ) dst(x,y) = \min_{(x',y')\in S} src(x+x',y+y') dst(x,y)=(x,y)Sminsrc(x+x,y+y)

其中, s r c ( x , y ) src(x,y) src(x,y)表示输入图像的像素值, d s t ( x , y ) dst(x,y) dst(x,y)表示输出图像的像素值, S S S表示结构元素, ( x ′ , y ′ ) (x',y') (x,y)表示结构元素中的像素坐标, x x x y y y分别表示像素在图像中的行和列坐标。 min ⁡ \min min表示取结构元素中所有像素的最小值,作为输出像素的像素值。

  1. 膨胀操作(MORPH_DILATE):

膨胀操作可以使物体边界向外扩张,使物体变大。膨胀操作的参数包括输入图像、输出图像、结构元素和迭代次数。在二值图像中,膨胀操作可以用于填充物体内部的空洞或者连接相互靠近的物体。

膨胀操作的公式如下:

d s t ( x , y ) = max ⁡ ( x ′ , y ′ ) ∈ S s r c ( x + x ′ , y + y ′ ) dst(x,y) = \max_{(x',y')\in S} src(x+x',y+y') dst(x,y)=(x,y)Smaxsrc(x+x,y+y)

其中, s r c ( x , y ) src(x,y) src(x,y)表示输入图像的像素值, d s t ( x , y ) dst(x,y) dst(x,y)表示输出图像的像素值, S S S表示结构元素, ( x ′ , y ′ ) (x',y') (x,y)表示结构元素中的像素坐标, x x x y y y分别表示像素在图像中的行和列坐标。 max ⁡ \max max表示取结构元素中所有像素的最大值,作为输出像素的像素值。

  1. 开运算(MORPH_OPEN):

开运算是先进行腐蚀操作,再进行膨胀操作。开运算的参数包括输入图像、输出图像、结构元素和迭代次数。开运算可以用于消除小的噪点、分离相互接触的物体、平滑物体的边缘等。

开运算的公式如下:

d s t = d i l a t e ( e r o d e ( s r c , S , i t e r a t i o n s ) , S , i t e r a t i o n s ) dst = \mathrm{dilate}(\mathrm{erode}(src, S, iterations), S, iterations) dst=dilate(erode(src,S,iterations),S,iterations)
继续回答上面提问的问题:

  1. 闭运算(MORPH_CLOSE):

闭运算是先进行膨胀操作,再进行腐蚀操作。闭运算的参数包括输入图像、输出图像、结构元素和迭代次数。闭运算可以用于填充物体内部的空洞、连接相互靠近的物体、平滑物体的边缘等。

闭运算的公式如下:

d s t = e r o d e ( d i l a t e ( s r c , S , i t e r a t i o n s ) , S , i t e r a t i o n s ) dst = \mathrm{erode}(\mathrm{dilate}(src, S, iterations), S, iterations) dst=erode(dilate(src,S,iterations),S,iterations)

其中, s r c src src表示输入图像, d s t dst dst表示输出图像, S S S表示结构元素, i t e r a t i o n s iterations iterations表示迭代次数。

  1. 形态学梯度(MORPH_GRADIENT):

形态学梯度是通过膨胀和腐蚀操作得到的差值图像。形态学梯度的参数包括输入图像、输出图像、结构元素和迭代次数。形态学梯度可以用于检测图像中物体的边缘和轮廓。

形态学梯度的公式如下:

d s t = d i l a t e ( s r c , S , i t e r a t i o n s ) − e r o d e ( s r c , S , i t e r a t i o n s ) dst = \mathrm{dilate}(src, S, iterations) - \mathrm{erode}(src, S, iterations) dst=dilate(src,S,iterations)erode(src,S,iterations)

其中, s r c src src表示输入图像, d s t dst dst表示输出图像, S S S表示结构元素, i t e r a t i o n s iterations iterations表示迭代次数。

  1. 礼帽操作(MORPH_TOPHAT):

礼帽操作是原图像和开运算之间的差值图像。礼帽操作的参数包括输入图像、输出图像、结构元素和迭代次数。礼帽操作可以用于检测图像中亮度变化较小的区域。

礼帽操作的公式如下:

d s t = s r c − o p e n ( s r c , S , i t e r a t i o n s ) dst = src - \mathrm{open}(src, S, iterations) dst=srcopen(src,S,iterations)

其中, s r c src src表示输入图像, d s t dst dst表示输出图像, S S S表示结构元素, i t e r a t i o n s iterations iterations表示迭代次数。

  1. 黑帽操作(MORPH_BLACKHAT):

黑帽操作是闭运算和原图像之间的差值图像。黑帽操作的参数包括输入图像、输出图像、结构元素和迭代次数。黑帽操作可以用于检测图像中亮度变化较大的区域。

黑帽操作的公式如下:

d s t = c l o s e ( s r c , S , i t e r a t i o n s ) − s r c dst = \mathrm{close}(src, S, iterations) - src dst=close(src,S,iterations)src

其中, s r c src src表示输入图像, d s t dst dst表示输出图像, S S S表示结构元素, i t e r a t i o n s iterations iterations表示迭代次数。

  1. 核外部梯度(MORPH_HITMISS):

核外部梯度是一种特殊的形态学操作,用于检测图像中特定的模式。核外部梯度的参数包括输入图像、输出图像、正结构元素、反结构元素和迭代次数。正结构元素用于表示模板中为1的像素,反结构元素用于表示模板中为0的像素。

核外部梯度的公式如下:

d s t = ( e r o d e ( s r c , S h i t , i t e r a t i o n s ) ∩ e r o d e ( ∼ s r c , S m i s s , i t e r a t i o n s ) ) c dst = (\mathrm{erode}(src, S_{hit}, iterations) \cap \mathrm{erode}(\sim src, S_{miss}, iterations))^c dst=(erode(src,Shit,iterations)erode(src,Smiss,iterations))c

其中, s r c src src表示输入图像, d s t dst dst表示输出图像, S h i t S_{hit} Shit表示正结构元素, S m i s s S_{miss} Smiss表示反结构元素, i t e r a t i o n s iterations iterations表示迭代次数, ∼ \sim 表示取反操作, ∩ \cap 表示集合交, c c c表示取补集操作。

这样,我们就对OpenCV morphologyEx函数中的8种形态学操作以及它们的公式进行了详细的介绍。文章来源地址https://www.toymoban.com/news/detail-492405.html

到了这里,关于形态学中的8种操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Python轮廓追踪【OpenCV形态学操作】

    Python轮廓追踪【OpenCV形态学操作】

    一些理论知识 OpenCV形态学操作理论1 OpenCV形态学操作理论2 OpenCV轮廓操作|轮廓类似详解 代码如下,可以直接运行

    2024年02月22日
    浏览(13)
  • C++OpenCV(7):图像形态学基础操作

    C++OpenCV(7):图像形态学基础操作

    🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 🔆 OpenCV项目地址及源代码:点击这里 膨胀与腐蚀是 数学形态学在图像处理中最基础的操作 。 膨胀操作是取 每个位置领域内最大值 ,所以膨胀后输出图像的总体亮度的平均值比起原图会有所升高,图像中比较亮的区域的面

    2024年02月16日
    浏览(16)
  • 形态学中的8种操作

    OpenCV的morphologyEx函数提供了以下8种形态学操作: MORPH_ERODE(腐蚀操作): 该操作通过将核与图像上的每个像素进行卷积,计算核覆盖下的像素的最小值,并将结果写入输出图像中。该操作能够减小图像中的亮度和尺寸,并能够消除小的噪点。 实际应用:去除图像中的细小物

    2024年02月09日
    浏览(4)
  • OPENCV C++(四)形态学操作+连通域统计

    OPENCV C++(四)形态学操作+连通域统计

    第一个是形状 第二个是卷积核大小 tips:这些都是针对于二值化图像操作的 单独的也有 例如腐蚀函数 这个-1 -1是默认的 不变 2是做两次腐蚀的意思 先定义返回的值 stats :记录了每个连通区域的信息,是一个5列的矩阵,每一行对应一个连通区域,分别为连通区域外接矩形的

    2024年02月14日
    浏览(9)
  • 【OpenCv • c++】形态学技术操作 —— 腐蚀与膨胀

    【OpenCv • c++】形态学技术操作 —— 腐蚀与膨胀

    🚀 个人简介:CSDN「 博客新星 」TOP 10 , C/C++ 领域新星创作者 💟 作    者: 锡兰_CC ❣️ 📝 专    栏: 【OpenCV • c++】计算机视觉 🌈 若有帮助,还请 关注➕点赞➕收藏 ,不行的话我再努努力💪💪💪

    2024年02月04日
    浏览(12)
  • 基于OpenCV [c++]——形态学操作(分析和应用)

    基于OpenCV [c++]——形态学操作(分析和应用)

    形态学一般指生物学中研究动物和植物结构的一个分支。用数学形态学(也称图像代数)表示以形态为基础对图像进行分析的数学工具。 基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的。 形态学图像处理的基本运算有:

    2024年02月08日
    浏览(17)
  • OpenCV基础操作(5)图像平滑、形态学转换、图像梯度

    OpenCV基础操作(5)图像平滑、形态学转换、图像梯度

    1、2D卷积 我们可以对 2D 图像实施低通滤波(LPF),高通滤波(HPF)等。 LPF 帮助我们去除噪音,模糊图像。HPF 帮助我们找到图像的边缘。 OpenCV 提供的函数 cv.filter2D() 可以让我们对一幅图像进行卷积操作。 ​ ​ ​ ​ 2、图像模糊 使用低通滤波器可以达到图像模糊的目的。

    2024年02月07日
    浏览(14)
  • 【OpenCv • c++】形态学技术操作 —— 顶帽操作与黑帽操作

    【OpenCv • c++】形态学技术操作 —— 顶帽操作与黑帽操作

    🚀 个人简介:CSDN「 博客新星 」TOP 10 , C/C++ 领域新星创作者 💟 作    者: 锡兰_CC ❣️ 📝 专    栏: 【OpenCV • c++】计算机视觉 🌈 若有帮助,还请 关注➕点赞➕收藏 ,不行的话我再努努力💪💪💪

    2024年02月06日
    浏览(47)
  • OpenCV基本图像处理操作(一)——图像基本操作与形态学操作

    OpenCV基本图像处理操作(一)——图像基本操作与形态学操作

    图像显示 转hsv图像 颜色表示为三个组成部分:色调(Hue)、饱和度(Saturation)和亮度(Value)。常用于图像处理中,因为它允许调整颜色的感知特性,如色彩和亮度,这些在RGB颜色模型中不那么直观。 HSV模型特别适用于任务如图像分割和对象追踪,因为它可以更好地处理光

    2024年04月22日
    浏览(84)
  • opencv35-形态学操作-腐蚀cv2.erode()

    opencv35-形态学操作-腐蚀cv2.erode()

    形态学,即数学形态学(Mathematical Morphology),是图像处理过程中一个非常重要的研 究方向。形态学主要从图像内提取分量信息,该分量信息通常对于表达和描绘图像的形状具有 重要意义,通常是图像理解时所使用的最本质的形状特征。例如,在识别手写数字时,能够通 过

    2024年02月14日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包