精华内容
下载资源
问答
  • 形态学灰度重建(一)
    2021-04-20 10:27:07

    最近在学习形态学重建的知识,发现在百度上资料很少,经过挣扎在matlab官网上和一些paper中找到了些教程,现在做个记录整理。

    理解形态学重建

    形态学重建可以看作是对一个图像进行连续的膨胀操作,这个图像称之为标识图像marker。当连续的膨胀操作使得标识图像的轮廓匹配了另一个图像,重建过程结束,这个所谓的另一个图像便是掩模图像mark。

    0818b9ca8b590ca3270a3433284dd417.png

    0818b9ca8b590ca3270a3433284dd417.png

    以上的图显示了形态学重建的过程,第一幅图是起始状态,其中蓝色线表示的是标识图像,红色的线表示掩模图像,形态学重建的目的就是为了将蓝色的线和红线的线轮廓相吻合。第二幅图显示了灰度重建的过成和结果,其中黑色的线表示了最终重建的结果它已经和红色的线高度吻合了。重建的过程就是在红色线的轮廓约束下(黑色线不能越过红色的轮廓),连续对蓝色的线进行膨胀操作,当进一步的操作不再改变蓝色线的轮廓,这个时候蓝色线的轮廓就是第二幅图中黑色线的轮廓了。

    形态学重建是基于形态学膨胀,但是请注意一下几点:a

    a.重建是基于两幅图像的,一个标识图像一个掩模图像,而不是像膨胀,腐蚀等是基于一副图像和一个结构元素。

    b.重建是基于图像的连续性,而不是基于结构元素。

    c.重建的过程是在处理达到稳定的时候完成,例如图像不再变化了。

    理解标识图像和掩模图像

    形态学重建处理的图像是标识图像,这个标识图像是另一幅图像的子集,这个图像成为掩模图像。

    在2D上举个例子:

    0818b9ca8b590ca3270a3433284dd417.png

    进行灰度重建的第一步是需要找到一个标识图像,这个用自带函数的到一个marker:

    marker = imsubtract(A,2)

    marker =

    8 8 8 8 8 8 8 8 8 8

    8 12 12 12 8 8 9 8 9 8

    8 12 12 12 8 8 8 9 8 8

    8 12 12 12 8 8 9 8 9 8

    8 8 8 8 8 8 8 8 8 8

    8 9 8 8 8 16 16 16 8 8

    8 8 8 9 8 16 16 16 8 8

    8 8 9 8 8 16 16 16 8 8

    8 9 8 9 8 8 8 8 8 8

    8 8 8 8 8 8 9 8 8 8

    然后用

    imreconstruct:

    recon = imreconstruct(marker, mask)

    0818b9ca8b590ca3270a3433284dd417.png

    观察实验可知,marker中的灰度值对应于mark中的都是较小的,在我们选取marker时需要将我们的图像最大区域包含进入marker中,重建结果的下限值和原始数据的下限值是一样的,但是一些峰值是被削弱了。

    更多相关内容
  • 因此,本文以数字图像为载体,研究基于形态学的图像分割技术,并进行物体个数计算应用和车道线检测的应用。对图像中物体个数的计算以及车道线检测应用,不仅需要对采集到的图像进行预处理,而且要针对特定的目的进行...
  • 第十一篇 灰度形态学

    2020-06-17 21:56:06
    二值图像形态学主要是膨胀腐蚀,直白一点说,就是放大一圈与缩小一圈。灰度形态学的方式大体上差不多。从另一个角度来说,放大或缩小一圈,就是在8邻域中取最大值和最小值。所以,灰度形态学,也是这样。 灰度...

        二值图像形态学主要是膨胀腐蚀,直白一点说,就是放大一圈与缩小一圈。灰度形态学的方式大体上差不多。从另一个角度来说,放大或缩小一圈,就是在8邻域中取最大值和最小值。所以,灰度形态学,也是这样。

     

    灰度形态学的膨胀,就是以某像素为中心,取最大值,相反腐蚀,就是取最小值。下面以Lena灰度图像为基础,做灰度形态学变换。

    先上原图:

     

     

    膨胀图:

     

     

    膨胀后的图像提高 了整体亮度,并且变得更模糊了。

    腐蚀图:

     

     

    腐蚀后的图像,降低了整个图像的亮度,同样变得更模糊了。

    同样的,开运算和闭运算的图片如下:

    开运算图像如下:

     

     

     

    闭运算图像如下:

     

     

    同时贴上灰度形态学的膨胀的代码:

    void GrayMorphDilate(PStruImage dilateImg, PStruImage image)

    {

    int i, j, k;

    unsigned char *cptr = NULL;

    unsigned char *dcptr = NULL;

    int step = image->bytePerLine;

    int offset[8] = { 0 };

    offset[0] = -dilateImg->bytePerLine - 1;

    offset[1] = -dilateImg->bytePerLine;

    offset[2] = -dilateImg->bytePerLine + 1;

    offset[3] = -1;

    offset[4] = 1;

    offset[5] = dilateImg->bytePerLine - 1;

    offset[6] = dilateImg->bytePerLine;

    offset[7] = dilateImg->bytePerLine + 1;

     

    memset(dilateImg->cptr, 0, dilateImg->imgSize);

    for (i = 1; i < image->height - 1; i++)

    {

    dcptr = dilateImg->cptr + i*dilateImg->bytePerLine + 1;

    cptr = image->cptr + i*image->bytePerLine;

    for (j = 1; j < image->width - 1; j++)

    {

    unsigned char maxval = cptr[j];

    for (k = 0; k < 8; k++)

    {

    if (cptr[offset[k]+j]>maxval)

    maxval = cptr[offset[k] + j];

    }

    dcptr[j] = maxval;

    }

    }

    }

    源代码:https://download.csdn.net/download/finger157959/12528142

    展开全文
  • 基于形态学的权重自适应图像去噪.
  • 形态学图像处理

    2020-12-19 22:34:21
    形态学,即数学形态学(mathematical Morphology),是图像处理中应用最为广泛的技术之一,主要用于从图像中提取对表达和描绘区域形状有意义的图像分量,使后续的识别工作能够抓住目标对象最为本质〈最具区分能力-...

    形态学,即数学形态学(mathematical Morphology),是图像处理中应用最为广泛的技术之一,主要用于从图像中提取对表达和描绘区域形状有意义的图像分量,使后续的识别工作能够抓住目标对象最为本质〈最具区分能力-most discriminative)的形状特征,如边界和连通区域等。同时像细化、像素化和修剪毛刺等技术也常应用于图像的预处理和后处理中,成为图像增强技术的有力补充。

    本文主要包括以下内容

    二值图像的基本形态学运算, 包括腐蚀、膨胀、开和闭。

    二值形态学的经典应用, 包括击中击不中变换、边界提取和跟踪、区域填充、提取连通分量、细化和像素化, 以及凸壳

    灰度图像的形态学运算, 包括灰度腐蚀、灰度膨胀、灰度开和灰度闭

    本章的典型案例分析

    在人脸局部图像中定位嘴的中心

    显微镜下图像的细菌计数

    利用顶帽变换(top-hat)技术解决光照不均问题

    预备知识

    在数字图像处理中, 形态学是借助集合论的语言来描述的, 本章后面的各节内容均以本集合论为基础。

    结构元素(structure element)

    设有两幅图像A, S。若A是被处理的对象, 而S是用来处理A的, 则称S为结构元素。结构元素通常都是一些比较小的图像, A与S的关系类似于滤波中图像和模板的关系.

    二值图像中的基本形态学运算

    本节介绍几种二值图像的基本形态学运算, 包括腐蚀、膨胀, 以及开、闭运算。由于所有形态学运算都是针对图像中的前景物体进行的, 因而首先对图像前景和背景的认定给出必要的说明.

    注意: 大多数图像,一般相对于背景而言物体的颜色(灰度)更深, 二值化之后物体会成为黑色, 而背景则成为白色, 因此我们通常是习惯于将物体用黑色(灰度值0)表示, 而背景用白色(灰度值255)表示,本章所有的算法示意图以及所有的Visual C++的程序实例都遵从这种约定;但Matlab 在二位图像形态学处理中,默认情况下白色的(二位图像中灰度值为1的像素,或灰度图像中灰度值为255的像素)

    是前景(物体),黑色的为背景, 因而本章涉及Matlab 的所有程序实例又都遵从Matlab本身的这种前景认定习惯.

    实际上, 无论以什么灰度值为前景和背景都只是一种处理上的习惯, 与形态学算法本身无关。例如对于上面两幅图片, 只需要在形态学处理之前先对图像反色就可以在两种认定习惯之间自由切换。

    腐蚀及其实现

    腐蚀和膨胀是两种最基本也是最重要的形态学运算, 它们是后续要介绍的很多高级形态学处理的基础, 很多其他的形态学算法都是由这两种基本运算复合而成

    matlab实现

    Matlab中与腐蚀相关的两个常用函数为imerode和strel。

    imerode函数用于完成图像腐蚀.其常用调用形式如下:I2 = imrode(I,SE)

    I为原始图像,可以是二位或灰度图像(对应于灰度腐蚀).

    SE是由strel函数返回的自定义或预设的结构元素对象.

    strel函数可以为各种常见形态学运算生成结构元素SE, 当生成供二值形态学使用的结构元素肘, 其调用形式为:SE=strl(shape,parameter)

    shape指定了结构元素的形状, 其常用合法取值如在8.1所示.

    腐蚀的作用“ 顾名思义,腐蚀能够消融物体的边界,而具体的腐蚀结果与图像本身和结构元素的形状有关。如果物体整体上大于结构元素,腐蚀的结构是使物体变“ 瘦”一圈,而

    这一圈到底有多大是由结构元素决定的:如果物体本身小于结构元素, 则在腐蚀后的图像中物体将完全消失:如物体仅有部分区域小于结构元素〈如细小的连通3,则腐蚀后物体会在细

    连通处断裂,分离为两部分。

    I = imread('erode_dilate.bmp');

    se = strel('square',3);

    Ib = imerode(I,se);

    se = strel([0 1 0;1 1 1;0 1 0]);

    Ic = imerode(I,se);

    se = strel('square',5);

    Id = imerode(I,se);

    figure;

    subplot(2,2,1);

    imshow(I);

    subplot(2,2,2);

    imshow(Ib);

    subplot(2,2,3);

    imshow(Ic);

    subplot(2,2,4);

    imshow(Id);

    随着腐蚀结构元素的逐步增大,小于结构元素的物体相继消失。由于腐蚀运算具有上述的特点,可以用于滤波。选择适当大小和形状的结构元素,可以滤除掉所有不能 完全包含结构元素的噪声点。然而,利用腐蚀滤除噪声有一个缺点,即在去除噪声点的同时,对图像中前景物体的形状也会有影响,但当我们只关心物体的位置或者个数时,则影响不大

    膨胀及其实现

    实际上, 膨胀和腐蚀对子集合求补和反射运算是彼此对偶的.

    这里值得注意的是定义中要求和A有公共交集的不是结构元素S本身, 而是S的反射集, 觉得熟悉吗?这在形式上似乎容易让我们回忆起卷积运算, 而腐蚀在形式上则更像相关运算。由于图8.8 中使用的是对称的结构元素, 故使用S 和S^' 的膨胀结果相同:但对于图8.9中非对称结构元素的膨胀示例, 则会产生完全不同的结果, 因此在实现膨胀运算时一定要先计算S^'

    matlab实现

    imdilate函数用于完成图像膨胀, 其常用调用形式如下:

    I2 = imdilate(I,SE);

    I为原始图像, 可以是二位或灰度图像(对应于灰度膨胀).

    SE是由strel函数返回的自定义或预设的结构元素对象

    膨胀的作用和腐蚀相反, 膨胀能使物体边界扩大, 具体的膨胀结果与图像本身和结构元素的形状有关。膨胀常用于将图像中原本断裂开来的同一物体桥接起来, 对图像进行二值化之后, 很容易使一个连通的物体断裂为两个部分, 而这会给后续的图像分析(如要基于连通区域的分析统计物体的个数〉造成困扰,此时就可借助膨胀桥接断裂的缝隙

    I = imread('starcraft.bmp');

    Ie1 = imerode(I,[1 1 1;1 1 1;1 1 1]);

    Ie2 = imerode(Ie1,[0 1 0;1 1 1;0 1 0]);

    Id1 = imdilate(Ie2,[1 1 1;1 1 1;1 1 1]);

    Id2 = imdilate(Id1,[0 1 0;1 1 1;0 1 0]);

    figure;

    subplot(2,2,1);

    imshow(Ie1);

    subplot(2,2,2);

    imshow(Ie2);

    subplot(2,2,3);

    imshow(Id1);

    subplot(2,2,4);

    imshow(Id2);

    开运算及其实现

    开运算和闭运算都由腐蚀和膨胀复合而成, 开运算是先腐蚀后膨胀, 而闭运算是先膨胀后腐蚀。

    一般来说, 开运算可以使图像的轮廓变得光滑, 还能使狭窄的连接断开和消除细毛刺。

    如图8.11所示, 开运算断开了团中两个小区域间两个像素宽的连接〈断开了狭窄连接〉,并且去除了右侧物体上部突出的一个小于结构元素的2×2的区域〈去除细小毛刺〉: 但与腐蚀不同的是, 图像大的轮廓并没有发生整体的收缩, 物体位置也没有发生任何变化。

    根据图8.12 的开运算示意图, 可以帮助大家更好地理解开运算的特点。为了比较, 图中也标示出了相应的腐蚀运算的结果:

    matlab实现

    根据定义,以相同的结构元素先后调用imerode和imdilate即可实现开操作。此外,Matlab 中也直接提供了开运算函数imopen, 其调用形式如下:

    I2 = imopen(I,SE);

    I = imread('erode_dilate.bmp');

    Io = imopen(I,ones(6,6));

    figure;

    subplot(1,2,1);

    imshow(I);

    subplot(1,2,2);

    imshow(Io);

    从图8.13中可以看到同腐蚀相比,开运算在过滤噪声的同时并没有对物体的形状、轮廓造成明显的影响,这是一大优势。但当我们只关心物体的位置或者个数时,物体形状的改变不会给我们带来困扰,此时用腐蚀滤波具有处理速度上的优势〈同开运算相比节省了一次膨胀运算〉。

    闭运算及其实现

    闭运算同样可以使轮廓变得光滑, 但与开运算相反, 它通常能够弥合狭窄的间断, 填充小的孔洞。

    Matlab实现

    根据定义,以相同的结构元素先后调用imdilate 和imerode 即可实现闭操作。此外,Matlab中也直接提供了闭运算函数imclose, 其用法同imopen 类似

    二值图像中的形态学应用

    击中与击不中交换及其实现

    I = zeros(120,180);

    I(11:80,16:75)=1;

    I(56:105,86:135)=1;

    I(26:55,141:170)=1;

    se = zeros(58,58);

    se(5:54,5:54)=1;

    Ie1 = imerode(I,se);

    Ic = 1 - I;

    S2 = 1 - se;

    Ie2 = imerode(Ic,S2);

    Ihm = Ie1&Ie2;

    figure;

    subplot(2,2,1);

    imshow(I);

    subplot(2,2,2);

    imshow(Ie1);

    subplot(2,2,3);

    imshow(Ie2);

    subplot(2,2,4);

    imshow(Ihm);

    图中给出了变换的最终结果。为便于观察在显示时每幅图像周围都环绕着一圈黑色边框, 注意该边框并不是图像本身的一部分。

    注意: 注意对于结构元素s,我们感兴趣的物体S1之外的背景S2不能选择得太宽,因为使得S包含背景S2的目的仅仅是定义出物体S1的外轮廓,以便在图像中能够

    找到准确的完全匹配位置. 从这个意义上说, 物体S1周围有一个像素宽的背景环绕就足够了, 例8.3中选择了4个像素宽的背景,是为了使结构元素背景部分应

    看起来比较明显, 但如果背景部分过大, 则会影响击中/击不中变换的计算结果.在上例中, 中间的正方形Y与右上的正方形Z之间的水平距离为6,如果在定义S时, S2的宽度超过6个像素, 则最终的计算结果将是空集.

    边界提取与跟踪及其实现

    轮廓是对物体形状的有力描述, 对图像分析和识别十分有用。通过边界提取算法可以得到物体的边界轮廓:而边界跟踪算法在提取边界的同时还能依次记录下边界像素的位置信息,下面分别介绍.

    边界提取

    要在二值图像中提取物体的边界,容易想到的一个方法是将所有物体内部的点删除(置为背景色〉。具体地说,可以逐行扫描原图像,如果发现一个黑点〈图8.17 中黑点为前景点)的8个邻域都是黑点, 则该点为内部点, 在目标图像中将它删除。实际上这相当于采用一个3*3的结构元素对原图像进行腐蚀, 使得只有那些8个邻域都有黑点的内部点被保留,再用原图像减去腐蚀后的图像, 恰好删除了这些内部点, 留下了边界像素。这一过程可参

    见图8.17 。

    I = imread('head_portrait.bmp');

    se = strel('square',3);

    Ie = imerode(I,se);

    Iout = I - Ie;

    figure;

    subplot(1,2,1);

    imshow(I);

    subplot(1,2,2);

    imshow(Iout);

    边界跟踪

    区域填充

    区域填充可视为边界提取的反过程, 它是在边界已知的情况下得到边界包围的整个区域的形态学技术。

    理论基础

    问题的描述如下: 己知某-8连通边界和边界内部的某个点, 要求从该点开始填充整个边界包围的区域, 这一过程称为种子填充, 填充的开始点被称为种子.

    如图8.20 所示, 对于4 连通的边界, 其围成的内部区域是8 连通的, 而8连通的边界围成的内部区域却是4连通的.

    为了填充4 连通的边界应选择图8.20 (b )中的3 × 3 结构元素, 但如果想在8 连通边界内从种子点得到区域则需选用图8.20 (d)的十字结构元素S 对初始时仅为种子点的图像B进行膨胀,十字结构元素S能够保证只要B在边界A的内部〈不包括边界本身〉,每次膨胀都不会产生边界之外的点(新膨胀出来的点或者在边界内部, 或者落在边界上〉, 这样只需把每次膨胀的结果图像和边界的补图像Ac相交, 就能把膨胀限制在边界内部。随着对B的

    不断膨胀, B的区域不断生长, 但每次膨胀后与Ac的交又将B限制在边界d的内部, 这样一直到最终B充满整个A的内部区域,停止生长。此时的B与d的并集即为最终的区域填充结果。

    连通分量提取及其实现

    连通分量的概念在0.3.1小节中曾介绍过。在二值图像中提取连通分量是许多自动图像分析应用中的核心任务。提取连通分量的过程实际上也是标注连通分量的过程, 通常的做法是给原图像中的每个连通区分配一个唯一代表该区域的编号, 在输出图像中该连通区内的所有像素的像素值就赋值为该区域的编号, 我们将这样的输出图像称为标注图像。

    matlab实现

    在Matlab中, 连通分量的相关操作主要借助IPT函数bwlabel实现. 其调用语法为

    [L num]= bwlabel(Ibw,conn);

    Ibw为一幅输入二位图像.

    conn为可选参数, 指明要提取的连通分量是4连边还是8连通, 默认值为8.

    L为类似于图8.23 ( b)的标注图像.

    num为二维图像Ibw中连通分量的个数.

    提取连通分量的应用十分广泛, 利用标注图像可以方便地进行很多基于连通区的操作。例如要计算某一连通分量的大小, 只需扫描一遍标注图像, 对像素值为该区编号的像素进行计数: 又如要计算某一连通分量的质心, 只需扫描一遍标注图像, 找出所有像素值为该区编号的像素的x、y坐标, 然后计算其平均值.

    在人脸局部图像中定位嘴的中心

    我们希望在如图8.24 (a )所示的图像中定位嘴的中心,假定已经掌握了输入图像中的某些先验知识,嘴部占据了图像的大部分区域且从灰度上易于与周围皮肤分离开来. 于是针

    对性地拟定了在二位化图像中寻找最大连通区域中心的解决方案, 具体步骤为:

    (1)对输入图像进行二位化处理.

    (2)标注二值图像中的连通分量.

    (3)找出最大的连通分量.

    (4)计算最大连通分量的中心.

    % locateMouth.m

    I = imread('mouth.bmp'); %读入图像

    Id = im2double(I);

    figure, imshow(Id) % 得到8.24(a)

    Ibw = im2bw(Id, 0.38); % 以0.38为阈值二值化

    Ibw = 1 - Ibw; %为在Matlab中进行处理,将图像反色

    figure, imshow(Ibw) % 得到8.24(b)

    hold on

    [L, num] = bwlabel(Ibw, 8); % 标注连通分量

    disp(['图中共有' num2str(num) '个连通分量'])

    % 找出最大的连通分量(嘴)

    max = 0; % 当前最大连通分量的大小

    indMax = 0; % 当前最大连通分量的索引

    for k = 1:num

    [y x] = find(L == k); % 找出编号为k的连通区的行索引集合y和列索引集合x

    nSize = length(y); %计算该连通区中的像素数目

    if(nSize > max)

    max = nSize;

    indMax = k;

    end

    end

    if indMax == 0

    disp('没有找到连通分量')

    return

    end

    % 计算并显示最大连通分量(嘴)的中心

    [y x] = find(L == indMax);

    yMean = mean(y);

    xMean = mean(x);

    plot(xMean, yMean, 'Marker', 'o', 'MarkerSize', 14, 'MarkerEdgeColor', 'w', 'MarkerFaceColor', 'w');

    plot(xMean, yMean, 'Marker', '*', 'MarkerSize', 12, 'MarkerEdgeColor', 'k'); % 得到8.24(c)

    细菌计数

    I = imread('bw_bacteria.bmp');

    [L,num]=bwlabel(I,8);

    Idil = imdilate(I,ones(3,3));

    [L,num] = bwlabel(Idil,8);

    figure;

    subplot(1,2,1);

    imshow(I);

    subplot(1,2,2);

    imshow(Idil);

    展开全文
  • 针对传统分水岭算法分割腹部CT图像存在的过分割情况,提出了一种基于形态学优化和区域合并的分水岭分割算法。该方法先利用多尺度数学形态学方法检测出梯度图像,并用形态学重构去除细密纹理和噪声引起的局部极值,...
  • 利用光学显微镜(LM)和扫描电子显微镜(SEM)记录了沙特阿拉伯东部地区十字花科的9属5个部落的10个物种的果实,种子形态和种皮雕刻。 根据表面雕刻图案识别出四个种子图案。 网状,有四个亚型,波状,微生和卵形。 ...
  • 形态学操作是对图像形状进行的操作,一般情况下是对二值化图像进行的操作,两个基本的形态学操作是腐蚀和膨胀。 腐蚀 腐蚀操作很容易理解,与生活中的腐蚀意义一样,生活中的东西在腐烂的时候,总是会从边缘开始由...
  • 数学形态学滤波学习

    千次阅读 2021-11-26 11:30:04
    对数学形态学滤波进行学习,并介绍了简单应用

    一、概述

            数学形态学是建立在集合论基础上了一门学科。具体在图像处理领域,它把形态学和数学中的集合论结合起来,描述二值或灰度图像中的形态特征,来达到图形处理的目的。形态学主要是通过结构元素和图像的相互作用对图像进行拓补变换从而获得图像结构信息,通过对结构信息的分析,获取图像更本质的形态。

            数学形态学的方法要比空间域或者频率域滤波处理图像的方法有明显的优势。例如,在图像复原处理中,数学形态学滤波器可以利用先验的几何特征信息通过形态学滤波器对图像中的噪声进行有效的滤除,同时,它又能保留图像中的一些细节信息,而且形态学的算法简单,运算速度快,对硬件的要求不高。采用数学形态学在对图像的边缘检测中也表现出了特别好的效果,相比微分运算的边缘检测算法,形态学对噪声的敏感度低,同时,所提取出来的边缘光滑度高。

            数学形态学属于图像处理中的非线性滤波方法,通过数学形态学的算法对图像进行处理的步骤如下:

    1. 提取图像的几何特征,通过所提取的几何特征来找到相应的结构模式。
    2. 根据步骤1 所找出的结构模式来选择适当的结构元素,它的选取主要针对结构元素的形状以及结构元素的大小等,结构元素选取时应当尽量从简。
    3. 为了得到具有更显著的物体特征信息的图像,利用步骤2 所选取的结构元素对图像进行相应的形态学变换。
    4. 通过对步骤3 所处理得到的图像进行各种平滑变换,通过所需要的图像特征适当的进行增加对比度处理,使目标图像变得更加清晰、明了,并且更有利于我们对相应的图像信息进行提取。

    二、二值图像形态学

            数学形态学将二值图像看成是集合, 并用结构元素进行“探测”。结构元素是一个可以在图像上平移、且尺寸比图像小的集合。

            基本的数学形态学运算是将结构元素在图像范围内平移, 同时施加交、并等基本集合运算。数学形态学的实质是通过图像集合与结构元素间的相互作用来提取有意义的图像信息, 不同的结构元素可以提取不同层面的图像信息。

            数学形态学算子的性能主要以几何方式进行刻画, 而几何描述的特点更适合视觉信息的处理和分析, 其基本思想如图:

    1、数字图像的表示及基本操作

            集合可以表示图像中的目标,以二值图像为例,我们可以用一个二维数组的集合来描述它。用(x,y)可以表示一个二维图像中灰度值为1 的点,剩下的灰度值为0,只要能确定像素点的位置,就能表示该二值图像;对于一个灰度图像,我们可以用一个三维数组的集合来描述,其中集合中每个元素为(x,y,z),x,y 表示像素点的位置,而z 表示该灰度点的灰度值;同时,对于彩色图像,可以用一个更高维的数组集合表示,该高维数组分别表示灰度值,位置,颜色特征量。下面,讨论一些集合论的基本概念。

            数学形态学最初应用在二值图像当中,可以用作图像的预处理及后续处理中。所谓二值图像是指灰度只有0 和1 两个像素值,而没有过度像素值的图像。像素的灰度值为1 的点的集合叫做“前景”,而取值为0 的点的集合为“背景” 。

             还有两个广泛应用于形态学的附加定义, 在集合中定义为如下:

           下图说明了这两个定义, (a)是将集合平移到点, (b)是集合对于原点的反射。

     2、二值图像膨胀与腐蚀

    1)二值图像膨胀

           膨胀是指一个给定的集合在二值图像中“加长”或“变粗”的操作。而该目标加长的方式和变粗的程度是由结构元素所决定的。

            膨胀的过程与卷积非常相似,结构元素的原点在目标图像上从上到下,从左到右的方式移动。在结构元素移动的过程中,结构元素与目标图像中像素值为1 的点会存在重叠,如果有存在重叠的点,那么结构元素的原点所在位置的像素会被标为1。

            假设A 为原二值图像,B为结构元素,膨胀的过程可定义为如下运算:

            A被B膨胀是所有位移的集合, 这样和A至少有一个元素是重叠的。根据这种解释, 还可以写为:

             膨胀可以通过相对结构元素的所有点遍历输入图像进行平移,然后计算其并集得到:

            该方程所定义的膨胀, 历史上叫做明克夫斯基和。可以证明膨胀满足交换律,所以膨胀还可以等效的表示为

            膨胀操作的结果实例如下图:

            而膨胀运算由于使得图像边缘的像素灰度值增加,造成图像的边缘向外扩张,会使连接较近的前景逼近甚至粘连起来,最终达到所需要的视觉效果。

    2)二值图像腐蚀

            腐蚀可以看做是膨胀的逆运算,腐蚀通常是“收缩”或“细化”了二值图像中的对象,而收缩的方式和程度也是由结构元素所决定的。

            结构元素和膨胀的结构元素选取的原则一样,一般选取比目标要的形状对称的结构元素,结构元素越小,腐蚀运算所需的时间越少。腐蚀操作也是将结构元素从左到右,从上到下遍历整
    个图像,检验图像周围的像素是否和结构元素中的点有重合,如果没有重合,则该中心点像素值被标为0

            假设A 为原图像,B 为所选取的结构元素,腐蚀的过程可以定义为如下运算:

            腐蚀除了可以用填充形式定义外, 还有一种更重要的表达形式:

            一般地, 可以得到下列性质:如果原点在结构元素的内部, 则腐蚀后的图像为输入图像的一个子集, 这就是称作“腐蚀” 的原因;如果原点在结构元素的外部, 那么腐蚀后的图像可能不在输入图像的内部。

            腐蚀操作的结果实例如下图:

     

    3)膨胀与腐蚀运算的性质

            

     

     

            其中,结合律非常重要,它表明采用一个较大结构元素的形态学运算可以由两个采用较小结构元素和的形态学运算的级联来实现。这在实际应用中对提高算法效率和硬件实现意义极大。

    3、二值图像开运算和闭运算

    1)二值图像开运算

            假设A 为原图像,B 为结构元素,那么结合A 被结构元素B 做开运算,记为:

            用结构元素对集合进行开操作就是用对腐蚀, 然后用对结果进行膨胀。为了更好地理解开运算在图像处理中的作用, 讨论下面的等价方程:

            表示了先腐蚀后膨胀所描述的开运算。开运算一般可以平滑图像的轮廓,消弱狭窄的部分,去除细小的点和毛刺,总的位置和形状不变。我们可以利用开运算的此特点来去除图像中的噪声。如

             如图,X 为原始图像,B 为结构元素,由实验结果可以看出,原图中的两块正方形链接处的点和第二块正方形上面的一个孤立的点被去除掉了,而图像的整体形状和结构并没有发生变化。

    2)二值图像闭运算

            假设A 为原图像,B 为结构元素,那么结合A 被结构元素B 做闭运算,记为:

            闭运算是先膨胀后腐蚀, 也可以利用对偶性, 即沿图像的外边缘填充或滚动结构元素, 闭运算磨光了凸向图像内部的尖角, 即对图像外部滤波。

            闭运算与开运算是一对相反的操作,它能填充图像中的狭窄和凹陷的部分,消除小洞,磨光图像中凸起的内部尖角,使图像得到一定程度的平滑。我们同样可以利用此性质对图像进行去噪。

    3)二值图像开闭运算的性质

            

    三、灰度图像形态学

    1、基本概念

            在定义灰度级形态学之前, 先介绍一下与二值形态学平移、子集和并相对应的概念。

             下面的图表示了一个信号的移位平移及相应的形态学平移。

     

            极大极小实例如下:

             反射的定义是参照集合在平面内相对原点的旋转而提出来的。

    2、灰度图像膨胀与腐蚀

    1)灰度图像膨胀

            用g对f进行灰度膨胀,公式如下:

             这一定义对灰度膨胀提供了一种重要的几何描述, 即灰度膨胀可以通过将结构元的原点平移到与信号重合, 然后计算信号上的每一点与结构元对应各点和的最大值得到。

            因此,通常对灰度图像进行膨胀处理后,会造成图像中像素值本身较大的部分得到进一步扩张,会得到双重效果:

    1. 如果所有结构元素的值都为正,则得到的处理图像亮度会高于原始图像的亮度;
    2. 结构元素的形状和大小以及相关的值会使图像中的细节部分受到一定的影响:减少,或者有可能消失。

    2)灰度图像腐蚀

              用g对f进行灰度腐蚀,公式如下:

             通常对灰度图像进行腐蚀处理后,会使图像中像素值本身较小的部分得到进一步的缩小,会得到双重效果:

    1. 如果所有结构元素的值都为正,则得到的处理后图像会低于原始图像的亮度;
    2. 在输入图像中,如果亮的细节的面积小于结构元素的大小,则亮的部分将会削弱。削弱的亮度取决于结构元素的形状和幅值以及亮度区域周围的灰度值。

    3)膨胀与腐蚀运算的性质

    3、灰度图像开闭运算

            通常情况下,开运算一般能够平滑图像的轮廓,去除较小的亮点(相对于结构元素而言),消减图像中狭窄的部分,同时保留图像中灰度值较大的部分。腐蚀操作先将图像中较小的亮的部分去除,使图像变暗,而膨胀操作能够增加图像的亮度并且不再引入由腐蚀所去除的部分。

            灰度闭运算的结果基本上与灰度开运算相反,它通常能够去除图像中较小的暗点(相对于结构元素而言),填补狭窄以及凹陷的部分,消除小洞,使图像得到平滑,并且保留图像原有的亮度特征。膨胀操作能够将图像中较小的暗部分去除,使图像变亮,而腐蚀操作能调暗图像,并且不再引入由膨胀所去除的部分。

    展开全文
  • 在光学显微镜下观察了中国溲疏属32种13变种的种子形态,探讨了种子形态的分类学意义,结果表明,1 该属植物的种子可分为两大类:①大型种子,较原始,包括小花溲疏组和溲疏组下溲疏亚组;②小型种子,较进化,包括溲疏组下...
  • 图像处理(5) : 形态学处理

    千次阅读 2021-05-12 18:32:26
    形态学是图像处理中应用最为广泛的技术之一,主要用于从图像中提取对表达和描绘区域形状有意义的图像分量,使后续的识别工作能够抓住目标对象最为本质的形状特征,如边界和连通区域等。同时像细化、像素化和修剪...
  • 图像处理-形态学重建

    千次阅读 2022-03-02 22:44:53
    形态学重建算法 形态学重建原理 测地膨胀形态学重建代码 /* * src为标记图(已经过腐蚀操作) * msk为掩模 * dst为结果图像 * se为执行重建的结构元素 * iterations为标记值 */ void lhMorpRDilate(cv::Mat& ...
  • 形态学滤波

    千次阅读 2019-11-14 20:38:20
    它包括的运算很多,最基本的两个形态学操作是腐蚀和膨胀,其他的高级形态学操作都是基于这两个基本的形态学操作进行的,比如开运算、闭运算、形态学梯度、顶帽、黑帽等。 主要作用? 1、 消除噪声 2、分割出独立...
  • 五、形态学处理

    2020-03-05 13:38:43
    形态学主要从图像内提取分量信息,该分量信息通常对于表达和描绘图像的形状具有重要意义,通常是图像理解时所使用的最本质的形状特征。 形态学操作主要包含:腐蚀、膨胀、开运算、闭运算、形态学梯度(Morphological...
  • 本文报道了松属7种植物花粉形态的光学显微镜和扫描电子显微镜的研究结果,并分析了该属花粉的亚显微形态特征。各种花粉粒从远极面观呈近圆形、方形、椭圆形;近极面观呈椭圆形或近圆形。帽的表面纹饰为颗粒状或瘤状。...
  • opencv 形态学操作(python)

    千次阅读 2022-05-06 19:15:52
    形态学主要从图像内提取分量信息,该分量信息通常对于表达和描绘图像的形状具有重要意义,通常是图像理解时所使用的最本质的形状特征。 形态学操作主要包含:腐蚀、膨胀、开运算、闭运算、形态学梯度(Morphological...
  • 形态学算子

    2019-07-22 15:56:13
    形态学算子的主要思想是用一定形状的结构元素SE(structureelement)在图像中抽取出相应的某些结构,通常可以用于图像的滤波、分割、分类等处理。形态学算子有腐蚀、膨胀、开和闭四种。 腐蚀 腐蚀是...
  • 【计算机视觉】形态学基础

    千次阅读 2022-03-17 11:38:03
    腐蚀目标是使目标区域ROI范围“变小”,其实质造成图像的边界收缩,可以用来消除小且无意义的目标物。作用是消除背景的小颗粒噪声。其公式表达式子为: A⊖B=∩b∈BA−b A \ominus B=\cap b \in B A_{-b} A⊖B=∩b∈...
  • 数字图像处理中的形态学操作

    千次阅读 2019-04-21 19:00:07
    概要:首先,我们要在大的方向上对图像处理中的形态学操作有所认识,就是对二值图像和灰度图像的处理,其实这两者很类似,只要能把对二值图像的处理完全理解了,对灰度图像也就是维数扩展而已...
  • 用光学显微镜和扫描电镜对分布在四川的8组30种老鹤草属植物进行了花粉形态观察,并结合植物的外部形态特征研究了它们的一些系统学意义
  • 形态学-----细化

    2021-10-18 10:41:18
    参考链接1 参考链接 先简单了解下干嘛用的,以后用的时候再仔细研究算法。 基本概念 “骨架”是指一幅图像的骨骼部分,它描述物体的几何形状和拓扑结构,是重要的图像描绘子之一。计算骨架的过程一般称为“细化...
  • 利用扫描电子显微镜对卫矛属刺果组12种2变种及其余4个组11种植物种子的种皮微形态进行了观察研究,结果表明,种皮纹饰可分为6种类型:即网纹型、负网纹型、梯纹型、嚼烂型、复网纹型和山峰状凸起型;研究结果不支持将...
  • 人和猪、羊、牛肌组织形态的比较及法医学意义.docx
  • OpenCV-Python学习五> 形态学操作

    千次阅读 2022-04-21 21:44:17
    形态学主要从图像内提取分量信息,该分量信息通常对于表达和描述图像的形状具有重要意义形态学操作主要包含:腐蚀,膨胀,开运算,闭运算,形态学梯度计算,顶帽运算,黑帽运算等。 其中,腐蚀和膨胀操作时形态...
  • 通过提炼出来的一个形态学联想记忆的研究框架,可以很清晰地概括出形态学联想记忆的研究成果,从而可以很合理地归纳出形态学联想记忆仍...此形态学联想记忆的研究框架对形态学联想记忆的进一步研究具有一定的指导意义
  • 数学形态学-学习笔记

    千次阅读 多人点赞 2020-03-26 18:58:32
    目录一.概括二....数学形态学是数学形态学图像处理的基本理论。其基本的运算包括:腐蚀和膨胀、开运算和闭运算 基于这些基本运算还可推导和组合成各种数学形态学实用算法,用它们可以进行图像形状...
  • # 形态学重建 SE = cv.getStructuringElement(shape=cv.MORPH_CROSS, ksize=(3, 3)) while True: marker_pre = marker dilation = cv.dilate(marker, kernel=SE) marker = np.min((dilation, mask), axis=0) if ...
  • 第12章 形态学图像处理 形态学是一种应用于图像处理和模式识别领域的新的方法,是一门建立在严格的数学理论基础上而又密切联系实际的科学。由于形态学具有完备的数学基础,这为形态学用于图像分析和处理等奠定了...
  • 十四种凤仙花属植物种皮微形态特征及其分类学意义X.docx

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,353
精华内容 14,541
关键字:

形态学的意义