OpenCV(三十一):形态学操作

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

​​​​​​1.形态学操作

       OpenCV 提供了丰富的函数来进行形态学操作,包括腐蚀、膨胀、开运算、闭运算等。下面介绍一些常用的 OpenCV 形态学操作函数:

  1. 腐蚀操作(Erosion): erode(src, dst, kernel, anchor, iterations, borderType, borderValue) 该函数对输入图像中的前景区域进行腐蚀操作,通过用结构元素中的最小值替换区域中的像素值来收缩前景区域。OpenCV(三十一):形态学操作,Android之OpenCV,opencv,人工智能,计算机视觉,C++

  2. 膨胀操作(Dilation): dilate(src, dst, kernel, anchor, iterations, borderType, borderValue) 该函数对输入图像中的前景区域进行膨胀操作,通过用结构元素中的最大值替换区域中的像素值来扩展前景区域。OpenCV(三十一):形态学操作,Android之OpenCV,opencv,人工智能,计算机视觉,C++

  3. 开运算(Opening): morphologyEx(src, dst, MORPH_OPEN, kernel, anchor, iterations, borderType, borderValue) 开运算是先对图像进行腐蚀操作,然后再进行膨胀操作。这个操作可以去除小的噪声,并平滑图像的边界。OpenCV(三十一):形态学操作,Android之OpenCV,opencv,人工智能,计算机视觉,C++

  4. 闭运算(Closing): morphologyEx(src, dst, MORPH_CLOSE, kernel, anchor, iterations, borderType, borderValue) 闭运算是先对图像进行膨胀操作,然后再进行腐蚀操作。这个操作可以填充小的空洞,并平滑图像的边界。OpenCV(三十一):形态学操作,Android之OpenCV,opencv,人工智能,计算机视觉,C++

  5. 梯度运算(Gradient): morphologyEx(src, dst, MORPH_GRADIENT, kernel, anchor, iterations, borderType, borderValue) 梯度运算可以通过对输入图像的膨胀和腐蚀结果之差来突出显示边缘。OpenCV(三十一):形态学操作,Android之OpenCV,opencv,人工智能,计算机视觉,C++

  6. 顶帽运算(Top Hat): morphologyEx(src, dst, MORPH_TOPHAT, kernel, anchor, iterations, borderType, borderValue) 顶帽运算可以通过对输入图像和开运算结果之差来突出显示边缘和细节。OpenCV(三十一):形态学操作,Android之OpenCV,opencv,人工智能,计算机视觉,C++

  7. 黑帽运算(Black Hat): morphologyEx(src, dst, MORPH_BLACKHAT, kernel, anchor, iterations, borderType, borderValue) 黑帽运算可以通过对闭运算结果和输入图像之差来突出显示边缘和细节。OpenCV(三十一):形态学操作,Android之OpenCV,opencv,人工智能,计算机视觉,C++

以上函数中,src 是输入图像,dst 是输出图像,kernel 是结构元素,anchor 是结构元素的锚点位置,iterations 是迭代次数,borderType 是边界像素处理方式,borderValue 是边界像素的值。

2.相关函数morphologyEx()

morphologyEx() 是 OpenCV 库中用于形态学操作的函数之一。它可以执行包括腐蚀、膨胀、开运算、闭运算等一系列形态学操作。该函数的原型如下:

void morphologyEx(

InputArray src,

OutputArray dst,

int op,

InputArray kernel,

Point anchor = Point(-1,-1),

int iterations = 1,

int borderType = BORDER_CONSTANT,

const Scalar& borderValue = morphologyDefaultBorderValue()

);

该函数的参数包括:

  • src:输入图像或图像数组。

  • dst:输出图像或图像数组。

  • op:指定形态学操作的类型。

  • kernel:结构元素(核)用于形态学操作。

  • anchor:结构元素中心的位置,默认为(-1, -1)表示结构元素的中心位置为核的中心。

  • iterations:执行形态学操作的迭代次数,默认为1。

  • borderType:边界像素处理方式,默认为BORDER_CONSTANT。

  • borderValue:当borderType为BORDER_CONSTANT时指定边界像素的值,默认为morphologyDefaultBorderValue()。

其中形态学操作的类型:

OpenCV(三十一):形态学操作,Android之OpenCV,opencv,人工智能,计算机视觉,C++文章来源地址https://www.toymoban.com/news/detail-707115.html

3.示例代码:

void image_morphologyEx(Mat image){
    Mat gray;
    cvtColor(image,gray,COLOR_BGR2GRAY);//灰度化
    threshold(gray,gray,80,255,THRESH_BINARY);
    //5×5矩阵结构元素
    Mat kernel= getStructuringElement(0,Size(5,5));
    Mat open,close,gradient,tophat,blackhat;
    //对图像进行开运算
    morphologyEx(gray,open,MORPH_OPEN,kernel);
    //对图像进行闭运算
    morphologyEx(gray,close,MORPH_CLOSE,kernel);
    //对图像进行梯度运算
    morphologyEx(gray,gradient,MORPH_GRADIENT,kernel);
    //对图像进行顶帽运算
    morphologyEx(gray,tophat,MORPH_TOPHAT,kernel);
    //对图像进行黑帽运算
    morphologyEx(gray,blackhat,MORPH_BLACKHAT,kernel);
  
}

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

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

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

相关文章

  • Opencv | 图像卷积与形态学变换操作

    在每个图像位置(x,y)上进行基于邻域的函数计算,其中函数参数被称为卷积核 (kernel) kernel核的尺寸通常为奇数,一般为: 3 ∗ 3 、 5 ∗ 5 、 7 ∗ 7 3*3、5*5、7*7 3 ∗ 3 、 5 ∗ 5 、 7 ∗ 7 不同功能需要定义不同的函数,其中功能可以有: 图像增强:           平滑 / 去

    2024年04月23日
    浏览(37)
  • Python轮廓追踪【OpenCV形态学操作】

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2024年04月22日
    浏览(66)
  • opencv36-形态学操作-膨胀 cv2.dilate()

    膨胀操作是形态学中另外一种基本的操作。膨胀操作和腐蚀操作的作用是相反的,膨胀操作能对图像的边界进行扩张。膨胀操作将与当前对象(前景)接触到的背景点合并到当前对象内,从而实现将图像的边界点向外扩张。如果图像内两个对象的距离较近,那么在膨胀的过程

    2024年02月14日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包