图像处理基础(4)——了解图像形态学

  • 图像形态学
        以集合论为基础,用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的。4个基本运算包括,膨胀、腐蚀、开操作和闭操作。
    一.图像形态学基本思想
        用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的。
    说明:
    (1)形态处理是一种邻域计算形式。
    (2)结构元素在每个像素位置上它与二值图像对应的区域进行特定的逻辑运算,逻辑运算的结果为输出图像的相应像素。
    (3)一定形态可以理解为因为结构元素的大小、内容以及逻辑运算的性质不同,所以产生了不同的形态。
    (4)输出图像的效果与结构元素以及逻辑运算性质密切相关。
    二.集合论基本知识
    1.常见逻辑运算
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    2.尽管逻辑运算与集合操作存在一一对应关系,但逻辑运算只针对二值图像
    在这里插入图片描述
    三.二值形态学基本运算
    3.1.1腐蚀
    在这里插入图片描述
    式子表示用A来腐蚀B
    含义:    每当在目标图像A中找到一个与结构元素B相同的子图像时,就把该子图像中与B的原点位置对应的那个像素位置标注为1,图像A上标注出的所有这样的像素组成的集合,即为腐蚀运算的结果。
    实质:    在目标图像中标出那些与结构元素相同的子图像的原点位置的像素。
    效果:    使图像缩小
    过程演示:
    在这里插入图片描述
    过程说明:结构元素B看成一个卷积模板,每当结构元素平移到其原点与图像A中那些元素为均为1的位置是,如果图像结构元素的其他元素与其覆盖的元素值相同,则将结构元素对应图像的原点位置置1,否则置0。
    腐蚀结果:腐蚀运算的结果不仅与结构元素的形状(矩形、圆形、菱形等)选取有关,而且还与原点位置的选取有关。且当结构元素在目标图像上平移时,结构元素中的任何元素不能超出目标图像的范围。
    3.1.2腐蚀的应用
    1.利用腐蚀算法消除物体之间的粘连
    2.利用腐蚀算法识别物体
    3.可以用于滤波,选适当大小相形状的结构元素,以滤除所有不能完全包含结构元素的噪声点。然而,利用腐蚀滤除噪声有一个缺点,即在去除噪声点的同时,影响图像形状,但当我们只关心物体的位置或者个数时,则影响不大。
    3.2.1膨胀
    在这里插入图片描述
    式子表面用B来膨胀A,即B的反射进行平移与A的交集不能为空,也可理解为先进行B的反射即B相对于自身的映像,再用B的反射进行移位,以便能滑过集合(图像)A。
    含义:先对结构元素B做关于其原点的反射得到反射集合,然后再在目标图像A上将反射集合平移x,则那些反射集合平移后与目标图像A至少有1个非零公共元素相交时对应的反射集合的原点位置所组成的集合,就是膨胀运算的结果。
    过程演示:
    在这里插入图片描述
    过程说明:    先把结构元素转换成反射元素,每当反射元素在目标图像A上平移后,反射元素与其覆盖的子图像中至少有一个元素相交时,就将目标图像中与反射元素的原点对应的那个位置的像素值置为1,否则置为0。
    膨胀结果:    当目标图像不变,但所给的结构元素的形状改变时,膨胀运算的结果会发生改变。结构元素的形状不变,而其原点位置改变时,膨胀运算的结果也会发生改变。注意的是当结构元素在目标图像上平移时,允许结构元素中的非原点像素超出目标图像范围。
    3.2.2膨胀的应用
    1.利用膨胀运算将相邻的物体连接起来。
    2.利用膨胀运算填充目标区域中的小孔。
    3.3腐蚀与膨胀的对偶性
    在这里插入图片描述
    即:对目标图像的膨胀运算,相当于对图像背景的腐蚀运算操作;对目标图像的腐蚀运算,相当于对图像背景的膨胀运算操作。
    3.4开运算与闭运算
    在这里插入图片描述
    开运算定义:使用同一个结构元素对目标图像先进行腐蚀运算,然后再进行膨胀运算。
    开运算效果:使对象轮廓变得光滑,断开狭窄的间断和消除细的突出物
    在这里插入图片描述
    闭运算定义:使用同一个结构元素对目标图像先进行膨胀运算,然后再进行腐蚀运算称为闭运算。
    闭运算效果:使对象轮廓变得更为光滑,消除狭窄的间断和长细的鸿沟,消除小的孔洞并填补轮廓线中的断裂。
    在这里插入图片描述
    开闭运算可以在不明显改变面积的同时,平滑目标的边缘。
    先开运算在进行闭运算效果:构成噪声滤波器,可有效地去除噪声。
    3.5.1击中与击不中
    在这里插入图片描述
    击中与击不中变换(HMT)需要两个结构单元w和b,合成一个结构元素对B=(w,b)。一个探测图像内部,另一个探测图像外部。
    定义:在这里插入图片描述
    说明:在这里插入图片描述
    目的:用于精确检测图像A中结构元素B的位置,或从图A中检索B目标。
    3.5.2击中与击不中举例应用
    在这里插入图片描述
    在这里插入图片描述
    四.形态学边界的主要应用
    4.1用于边界提取(边界用更少的信息去描述物体)
    在这里插入图片描述
    在这里插入图片描述
    4.2用于区域的填充
    在这里插入图片描述
    过程如下图:
    在这里插入图片描述
    4.3用于细化或粗化
    细化:
    在这里插入图片描述
    粗化:是细化的形态学对偶,即对A进行粗化,可通过对A的补集进行细化后求补集得到。
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,数字图像处理可以通过计算机采用一定的算法对图形图像进行处理的技术。而MATLAB作为一种强大的运算和图形展示工具,可以用于数字图像处理。在数字图像处理中,形状识别是一个重要的应用场景。下面是一个基于MATLAB的九种形状识别的示例: 1. 首先,需要读取图像并将其转换为灰度图像: ```matlab img = imread('shapes.jpg'); gray_img = rgb2gray(img); ``` 2. 接下来,可以使用Canny算子进行边缘检测: ```matlab edge_img = edge(gray_img, 'Canny'); ``` 3. 然后,可以使用形态学操作对边缘进行处理: ```matlab se = strel('disk', 2); dilated_img = imdilate(edge_img, se); filled_img = imfill(dilated_img, 'holes'); ``` 4. 接着,可以使用区域props函数获取每个形状的属性: ```matlab stats = regionprops(filled_img, 'Area', 'Centroid', 'Perimeter', 'Eccentricity', 'BoundingBox'); ``` 5. 最后,可以根据属性值对每个形状进行分类: ```matlab for i = 1:length(stats) ratio = stats(i).BoundingBox(3) / stats(i).BoundingBox(4); if ratio > 0.9 && ratio < 1.1 && stats(i).Eccentricity < 0.3 % 正方形 elseif ratio > 1.9 && stats(i).Eccentricity < 0.3 % 长方形 elseif stats(i).Area > 1000 && stats(i).Perimeter > 300 % 圆形 elseif stats(i).Area > 1000 && stats(i).Perimeter < 300 % 五角星 elseif stats(i).Area > 1000 && stats(i).Perimeter > 400 % 十字架 elseif stats(i).Area > 1000 && stats(i).Perimeter > 500 % 梅花形 elseif stats(i).Area > 1000 && stats(i).Perimeter > 600 % 菱形 elseif stats(i).Area > 1000 && stats(i).Perimeter > 700 % 五边形 elseif stats(i).Area > 1000 && stats(i).Perimeter > 800 % 三角形 end end ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值