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

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

形态学是图像处理领域的一个分支,主要用于描述和处理图像中的形状和结构。形态学可以用于提取图像中的特征、消除噪声、改变图像的形状等。其中形态学的核心操作是形态学运算。

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

形态学运算是一种基于形状的图像处理技术,它是通过结构元素与图像进行特定运算的方式来改变图像的形态和特征。结构元素是一种小型、预定义的形状,通常是矩形、圆形或者椭圆形,可以与图像中的像素进行匹配。

形态学运算包括膨胀、腐蚀、开运算、闭运算等。其中膨胀操作可以将图像中的物体变大,使它更加连通;腐蚀操作则可以将图像中的物体变小,使它更加细化;开运算可以去除噪声,平滑图像的边缘;闭运算可以填补图像中物体的孔洞。

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

形态学在图像处理中应用广泛,特别是在图像分割、边缘检测、文本识别、计算机视觉等领域中。

形态学操作概念

形态学运算是一种根据图像的形状对其进行处理的技术。它通过比较相邻像素来构建图像。对于二进制图像({0,1}或{0,255}),这种操作会十分的简单。

在熟悉形态学操作之前,我们需要了解一些基本术语

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

Structuring Element 被翻译为结构元素或结构单元,也称为structuring function或者structuring kernel,是形态学中用于进行形态学运算的一种预定义的、小型的形状。SE通常是一个矩阵或者一个类似于核心的图形。

SE定义了用于改变图像形态的操作,例如膨胀、腐蚀、开运算和闭运算等。这些操作基于SE与图像中像素的匹配和计算。SE在运算中可以通过平移、旋转和翻转等操作进行变换。

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

形态学操作是通过在图像中传播结构元素来完成的。通过比较结构元素下的像素,在图像的原点位置改变像素值。所以SE的大小和形状选择是非常关键的,不同的SE可以产生不同的结果。通常情况下,SE的形状和大小需要根据图像的特征和处理目的来选择。例如,矩形形状的SE通常适用于处理直线形状的图像,而圆形形状的SE适用于处理圆形和椭圆形的图像。

Miss:如果图像中没有一个像素与结构元素匹配,则称为Miss。

Hit:当结构元素的至少一个像素与图像像素重叠时,称为Hit。

Fit:如果结构元素的所有像素都与图像匹配,则称为Fit。

形态学基本操作

形态学有两种形态操作:腐蚀、膨胀。另外两个常用的复合操作开、闭也是从这两个操作派生出来的。

1、Erosion 侵蚀,也被翻译成腐蚀:结构元素对对象的每个像素进行卷积。如果结构元素的所有像素与目标图像像素重叠(满足Fit条件),则将目标图像像素填充前景像素强度值。否则,将填充背景像素强度值。

假设背景为0,前景为1,那么伪代码就是:

 if Fit -> 1 else -> 0

使用了一个强度为1的2x2结构元素作为演示:

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

另外一张是6x6像素的图片。其中白色元素强度值为0,蓝色像素强度值为1。

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

结构元素对给定图像的每个像素进行卷积。如果它满足未Fit条件,它将在结构元素的原点位置将像素更改为0。上面我们已经用红色显示了像素从1到0的位置。最后得到以下结果。

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

可以看到主图像像素由于腐蚀而减少。Opnecv为我们提供了很好的实现,我们可以直接使用:

 import cv2
 import matplotlib.pyplot as plt
 import numpy as np
 img4=cv2.imread('/work/morphology_er.png',cv2.IMREAD_GRAYSCALE)
 plt.imshow(img4, cmap='gray')
 plt.show()

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

我们的图像是白色背景上的黑色。但是OpenCV需要黑色背景和白色图像对象来进行形态学操作。所以我们使用逆二值化。在形态学操作后再次进行二值阈值逆处理,以保留白色背景和黑色物体。

 thr,img_th = cv2.threshold(img4,127,255,cv2.THRESH_BINARY_INV)
 kernel=np.ones((5,5), np.uint8)
 new_h=cv2.erode(img_th,kernel,iterations=3)
 ret,correction= cv2.threshold(new_h,127,255,cv2.THRESH_BINARY_INV)
 plt.imshow(correction,cmap='gray')
 plt.show()

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

可以看到,腐蚀会消除小的物体或者细节。

 img5=cv2.imread('/work/morphology_ero.png',cv2.IMREAD_GRAYSCALE)
 plt.imshow(img5, cmap='gray')
 plt.show()

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

 thr,img_th = cv2.threshold(img5,127,255,cv2.THRESH_BINARY_INV)
 kernel=np.ones((5,5), np.uint8)
 new_h=cv2.erode(img_th,kernel,iterations=3)
 ret,correction= cv2.threshold(new_h,127,255,cv2.THRESH_BINARY_INV)
 plt.imshow(correction,cmap='gray')
 plt.show()

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

或者使我们的物体变小,或者断开彼此之间的连接

2、Dilation 膨胀 :结构元素在物体图像上进行卷积。如果任何结构元素的像素值与目标图像重叠(满足Hit条件),则目标图像像素将被前景像素强度值填充。否则,像素强度值将保持不变。

伪代码如下:

 If Hit -> 1 else -> 0

我们还是使用上面的例子:

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

完成操作后,它产生如下所示的结果。

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

膨胀会增加物体图像的像素。我们继续使用OpenCV演示:

 img3=cv2.imread('/work/morphology_di.png',cv2.IMREAD_GRAYSCALE)
 plt.imshow(img3, cmap='gray')
 plt.show()

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

 thr,img_th = cv2.threshold(img3,127,255,cv2.THRESH_BINARY_INV)
 kernel=np.ones((5,5), np.uint8)
 new_h=cv2.dilate(img_th,kernel,iterations=3)
 ret,correction= cv2.threshold(new_h,127,255,cv2.THRESH_BINARY_INV)
 plt.imshow(correction,cmap='gray')
 plt.show()

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

膨胀可以用于将物体扩大或连接起来,填补物体内部的空洞或裂缝

复合操作

还有一些其他的复合形态操作。其中,开和闭是两种应用广泛的操作。

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

可以看到,开操作Open先对图像进行腐蚀操作,然后再进行膨胀操作的组合过程,可以用于消除小的物体或细节,并且可以平滑物体的边界

闭操作Close则相反,它是先对图像进行膨胀操作,然后再进行腐蚀操作的组合过程。可以用于填补小的空洞或裂缝,并且也可以平滑物体的边界。

Opencv也提供了内置的实现:

 opening = cv.morphologyEx(img, cv.MORPH_OPEN, kernel)
 closing = cv.morphologyEx(img, cv.MORPH_CLOSE, kernel)

总结

形态学是一种基于形状和结构的图像处理方法,其核心是结构元素(SE)的定义和运算。SE是一个小的形状,通常是一个矩阵或者类似核心的图形,用于进行形态学运算,如腐蚀、膨胀、开运算和闭运算等。这些运算可以用于消除噪声、填补空洞、连接物体和分离物体等。

形态学的运算和SE的选择对图像处理结果具有重要影响,因此需要根据图像的特征和处理目的来选择合适的SE和运算。除了基本的形态学运算,形态学还可以用于形状分析、特征提取、目标识别等领域,具有广泛的应用。

https://avoid.overfit.cn/post/8b49f4cdb26045a8969c8e53fa543533

作者:Zubair文章来源地址https://www.toymoban.com/news/detail-444198.html

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

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

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

相关文章

  • 我在Vscode学OpenCV 图像处理一(阈值处理、形态学操作【连通性,腐蚀和膨胀,开闭运算,礼帽和黑帽,内核】)

    例如,设定阈值为127,然后:  将图像内所有像素值大于 127 的像素点的值设为 255。  将图像内所有像素值小于或等于 127 的像素点的值设为 0。 cv2.threshold() 和 cv2.adaptiveThreshold() 是 OpenCV 中用于实现阈值处理的两个函数,它们之间有以下区别: 1.1.1. cv2.threshold(): 这个函数

    2024年02月05日
    浏览(58)
  • 第九章 形态学图像处理

    图像形态学也叫数学形态学,是指一系列处理图像 形状特征 的图像处理技术,是一门建立在格伦和拓扑学基础上的图像分析学科,是数学形态学图像处理的基本理论。其基本思想是利用一种特殊的 结构元 来测量或提取输入图像中相应的形状或特征,以便进一步进行图像分析

    2024年02月09日
    浏览(39)
  • 形态学图像处理和图像分割MATLAB实验

    一、实验目的 理解腐蚀和膨胀的原理,掌握开运算、闭运算及形态学的边界提取。 掌握孤立点检测、线检测和边缘检测的方法。 掌握全局阈值处理的方法。 二、实验内容 1. 开运算和闭运算实验。 图1(a)显示了一幅被噪声图像污染的指纹图像,图1(b)给出了结构元,请自编程

    2024年02月06日
    浏览(47)
  • 《数字图像处理-OpenCV/Python》连载:形态学图像处理

    本书京东 优惠购书链接 https://item.jd.com/14098452.html 本书CSDN 独家连载专栏 https://blog.csdn.net/youcans/category_12418787.html 形态学图像处理是基于形状的图像处理,基本思想是利用各种形状的结构元进行形态学运算,从图像中提取表达和描绘区域形状的结构信息。形态学运算的数学原

    2024年02月19日
    浏览(74)
  • 数字图像处理之matlab实验(五):形态学图像处理

    常见的形态学处理包括腐蚀、膨胀、开运算、闭运算。不同的操作有不同的作用,同样的操作在不同类型的图片上也有不同效果,具体效果如下表格所示。要求熟练掌握对二值图像的形态学处理。 不同操作对不同类型图像处理效果 一、对二值图像进行处理 1、结构元素 在开

    2024年02月04日
    浏览(60)
  • python数字图像处理基础(四)——图像平滑处理、形态学操作、图像梯度

    让有噪音点(图像上显得突兀的像素点)的图像变得更加自然顺眼 1.均值滤波 blur() 根据核的大小(rowcol),每个像素值就等于以此像素为中心的周围rowcol个像素的平均值。 核大一点,显然越平滑、模糊。 result = cv2.blur(img, (15, 15)) 2.方框滤波 boxFilter() normalize=true的时候,效果同

    2024年01月18日
    浏览(77)
  • 图像处理技巧形态学滤波之腐蚀操作

    欢迎回来,我的图像处理爱好者们!今天,让我们深入研究图像处理领域中的形态学计算。这些非线性的图像处理技术允许我们操纵图像中对象的形状和结构。在本系列中,我们将依次介绍四种基本的形态学操作:腐蚀、膨胀、开操作和闭操作。 闲话少说,我们直接开始吧!

    2024年02月13日
    浏览(51)
  • OpenCV图像处理学习十,图像的形态学操作——膨胀腐蚀

    一.形态学操作概念 图像形态学操作是指基于形状的一系列图像处理操作的合集,主要是基于集合论基础上的形态学数学对图像进行处理。 形态学有四个基本操作:腐蚀、膨胀、开操作、闭操作,膨胀与腐蚀是图像处理中最常用的形态学操作手段。 二.形态学操作-膨胀 跟卷积

    2024年02月05日
    浏览(53)
  • 简要介绍 | 基于Python的图像形态学处理概述

    注1:本文系“简要介绍”系列之一,仅从概念上对基于Python的图像形态学处理进行非常简要的介绍,不适合用于深入和详细的了解。 Digital terrain models from airborne laser scanning for the automatic extraction of natural and anthropogenic linear structures In: Geomorphological Mapping: a professional handbook of

    2024年02月10日
    浏览(41)
  • 【计算机视觉】图像处理算法(形态学滤波篇)

    来源:《OpenCV3编程入门》,怀念毛星云大佬🕯️ 说明: 本系列重点关注各种图像处理算法的原理、作用和对比 数学形态学的概念: 数学形态学(Mathematical morphology)是立在格论和拓扑学基础之上的图像分析学科,足数学形态学阁像处现的基本理论。其基本的运算包括:二值腐

    2024年03月10日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包