美文网首页
119. 图像的形态学梯度

119. 图像的形态学梯度

作者: 大龙10 | 来源:发表于2025-09-11 07:18 被阅读0次

8. 形态学图像处理索引

一、形态学基本操作

  • 形态学的基本思想是利用结构元素测量或提取输入图像中的形状或特征,以便进行图像分析和目标识别。
    形态学操作都是基于各种形状的结构元,结构元对输入图像进行操作得到输出图像。

二、形态学梯度

  • 图像的形态学梯度运算,是膨胀图像与腐蚀图像之差 ,可以得到图像的轮廓,通常用于提取物体边缘。

  • 结构元 B 对集合 A 的形态学梯度运算定义为:



    闭运算通过填充图像的凹角来实现图像滤波,结构元大小的不同将导致滤波效果的不同,不同结构元素的选择导致不同的分割。

三、函数

  • OpenCV 中的函数 cv.morphologyEx 可以实现形态学梯度运算,但要将参数 op 设为 MORPH_GRADIENT。

cv.morphologyEx(src, op, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]] )→ dst

函数 cv.morphologyEx 使用侵蚀(erosion)和膨胀(dilation)作为基本操作来执行高级形态转换。

四、例程

  • 10.7:图像的形态学梯度

import cv2
import numpy as np
from matplotlib import pyplot as plt

# 10.7 图像的形态学梯度运算 (cv.morphologyEx)
# 读取原始图像
imgGray = cv2.imread(r"E:/OpenCV/Fig0905a.tif", flags=0)  # flags=0 读取为灰度图像
ret, imgBin = cv2.threshold(imgGray, 15, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)  # 二值化处理

# 图像的形态学梯度
kSize = (3, 3)  # 卷积核的尺寸
kernel = np.ones(kSize, dtype=np.uint8)  # 生成盒式卷积核
imgGrad1 = cv2.morphologyEx(imgBin, cv2.MORPH_GRADIENT, kernel)  # 形态学梯度

kSize = (5, 5)  # 卷积核的尺寸
kernel = np.ones(kSize, dtype=np.uint8)  # 生成盒式卷积核
imgGrad2 = cv2.morphologyEx(imgBin, cv2.MORPH_GRADIENT, kernel)  # 形态学梯度

kSize = (3, 3)  # 卷积核的尺寸
kernel = np.ones(kSize, dtype=np.uint8)  # 生成盒式卷积核
imgOpen = cv2.morphologyEx(imgBin, cv2.MORPH_OPEN, kernel)  # 开运算
imgOpenGrad = cv2.morphologyEx(imgOpen, cv2.MORPH_GRADIENT, kernel)  # 形态学梯度

plt.figure(figsize=(10, 5))
plt.subplot(141), plt.axis('off'), plt.title("Origin")
plt.imshow(imgGray, cmap='gray', vmin=0, vmax=255)
plt.subplot(142), plt.title("Gradient (size=3)"), plt.axis('off')
plt.imshow(imgGrad1, cmap='gray', vmin=0, vmax=255)
plt.subplot(143), plt.title("Gradient (size=5)"), plt.axis('off')
plt.imshow(imgGrad2, cmap='gray', vmin=0, vmax=255)
plt.subplot(144), plt.title("Opening -> Gradient"), plt.axis('off')
plt.imshow(imgOpenGrad, cmap='gray', vmin=0, vmax=255)
plt.tight_layout()
plt.show()

五、资料

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

相关文章

  • 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑

    【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑 一、概念 1.1...

  • 形态学操作

    · 形态学操作主要包括:腐蚀,膨胀,开运算,闭运算,形态学梯度运算,顶帽运算,黑帽运算,击中击不中 腐蚀 将图像的...

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

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

  • 灰度形态学基本运算

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

  • 形态学图像处理1

    形态学,即数学形态学(Mathematical Morphology),在图像处理中有广泛的应用,主要应用是从图像...

  • Morphology -形态学操作

    前言 简单的来讲,形态学操作是基于形状的图像处理操作,通过将结构元素作用于输入图像来输出图像。 对图像形态学运算,...

  • 图像梯度与Sobel滤波器---OpenCV-Python开发指

    图像梯度 图像梯度计算的是图像变化的速度。对于图像的边缘部分,其灰度值变化较大,梯度值也较大;相反,对于图像中比较...

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

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

  • Opencv第七课--形态学滤波

    形态学滤波 形态学滤波包括腐蚀、膨胀、开运算、闭运算、形态学梯度、礼帽、黑帽下面针对这四种形态学操作,说明一下其原...

  • imgproce腐蚀膨胀

    形态学操作简单来讲,形态学操作就是基于形状的一系列图像处理操作。通过将 结构元素 作用于输入图像来产生输出图像。 ...

网友评论

      本文标题:119. 图像的形态学梯度

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