美文网首页
143. 基于灰度形态学的粒度测定

143. 基于灰度形态学的粒度测定

作者: 大龙10 | 来源:发表于2025-10-05 08:36 被阅读0次

8. 形态学图像处理索引

一、灰度形态学之粒度分析

  • 粒度测度是指确定图像中颗粒的大小分布,属于判断图像中颗粒的尺寸分布的领域 。

  • 由于颗粒通常并不是整齐地分隔排列,要通过逐个颗粒识别来计算颗粒数量非常困难。形态学可间接估计颗粒的大小分布,而不需要识别和测量每个颗粒。

  • 开运算的特性是,某个尺寸的开运算会对包含了这个尺寸的区域产生最大的效果,而闭运算可以删除尺寸小于结构元的黑色区域。基于灰度形态学的粒度分析,原理就是对于比背景亮且形状规则的颗粒,使用逐渐增大的结构元对图像进行开运算。

  • 对于每次开运算得到的图像,计算像素值之和,称为表面区域。由于开运算会减小图像中的亮特征,表面区域随结构元的增大而减小,由此得到一个一维阵列。计算一维阵列中相邻两个元素的差并绘图,曲线中的峰值就会指明图像中主要大小颗粒的分布。

二、例程

  • 10.34:基于灰度形态学的粒度测定
    本例是基于形态学重建的粒度测定,由使用逐渐增大的结构元对图像执行开操作组成。

  • 测定图中木钉的尺寸。设置一个半径从小到大的结构元序列,依次对其做开操作,并且统计图像总灰度值,计算相邻灰度值的差。当结构元尺寸与木钉尺寸吻合时,会产生一个局部灰度高峰。比较不同尺寸的灰度差序列,峰值所对应的尺寸就是木钉的大致尺寸。

    # 10.34: 基于灰度形态学的粒度测定
    imgGray = cv2.imread("../images/Fig0941a.tif", flags=0)  # flags=0 灰度图像
    plt.figure(figsize=(9, 6))
    plt.subplot(231), plt.imshow(imgGray, cmap='gray'), plt.title("origin"), plt.axis("off")

    # 用不同半径圆形结构元进行开运算, 实现图像平滑
    rList = [5, 10, 20, 25, 30]
    for i in range(5):
        size = rList[i] * 2 + 1
        element = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (size, size))  # 圆形结构元
        imgOpen = cv2.morphologyEx(imgGray, cv2.MORPH_OPEN, element)
        plt.subplot(2,3,i+2), plt.title("smoothed (r={})".format(rList[i])), plt.axis("off")
        plt.imshow(imgOpen, cmap='gray')
    plt.tight_layout()
    plt.show()

    maxSize = 40
    sumSurf = np.zeros(maxSize)
    deltaSum = np.zeros(maxSize)
    for r in range(5, maxSize):
        size = r * 2 + 1
        element = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (size, size))  # 圆形结构元
        imgOpen = cv2.morphologyEx(imgGray, cv2.MORPH_OPEN, element)
        sumSurf[r] = np.concatenate(imgOpen).sum()
        deltaSum[r] = sumSurf[r-1] - sumSurf[r]
        # print(r, sumSurf[r], deltaSum[r])

    r = range(maxSize)
    plt.figure(figsize=(8, 6))
    plt.plot(r[6:], deltaSum[6:], 'b-o')  # 腐蚀运算
    plt.title("Delta of surface area")
    plt.yticks([])
    plt.show()    

三、资料

youcans_的博客:
https://blog.csdn.net/youcans/article/details/123786099

相关文章

  • 灰度形态学基本运算

    上海交通大学 医学图像处理 与二值形态学相对应另一种形态学运算是灰度形态学。灰度形态学与二值形态学相比,不仅在图像...

  • 灰度形态学算法的实现

    前言 灰度形态学算法中介绍了灰度形态学算法的相关原理,本篇文章将会利用python结合numpy和opencv实现...

  • 灰度形态学的基本应用

    上海交通大学 医学图像处理技术 形态学边缘检测(Edge Detection) 用灰度形态学实现的边缘检测,按照...

  • 基于机器视觉的路面裂缝检测

    基于机器视觉的路面裂缝检测本文的思路是:首先将图像进行图像预处理,其中包括灰度化,去噪,边缘提取以及形态学的方法等...

  • 第 5 章 用形态学运算变换图像

    本章包括以下内容: 用形态学滤波器腐蚀和膨胀图像; 用形态学滤波器开启和闭合图像; 在灰度图像中应用形态学运算; ...

  • 形态学滤波

    数字形态学是图像处理的基本理论,这里简单介绍一下基本的形态学运算,针对的是灰度图像,包括:腐蚀与膨胀,开闭运算,形...

  • OpenCV图像处理(七)图像滤波(2)

    1、形态学滤波 简单来说,形态学操作就是基于形状的一系列图像处理操作,最基本的形态学操作:膨胀、腐蚀。在图像处理中...

  • Vim快速移动光标

    1、字符粒度的移动 2、单词粒度的移动 3、基于行的移动 4、 基于锚点的移动 5、基于屏幕的移动 6、基于历史的...

  • halcon模板匹配总结

    halcon的模板匹配可以归为三类:1、基于灰度:灰度,互相关ncc2、基于形状:形状,组件3、基于描述符:描述匹...

  • 形态学操作

      图像形态学操作是基于形状的一系列图像处理操作的合集,主要是基于集合论基础上的形态学数学。主要有四个操作:膨胀,...

网友评论

      本文标题:143. 基于灰度形态学的粒度测定

      本文链接:https://www.haomeiwen.com/subject/ssurtstx.html