基于区域和边缘的分割


引言

图像分割是将数字图像分割成更小的组的过程,以便更容易、更简单地处理和分析更大的图像。基于区域和基于边缘的分割是图像分割的不同类型。

在深入研究基于区域和基于边缘的分割之前,让我们简要概述一下分割是如何完成的。

图像分割

简单来说,分割就是为图像中的像素分配特定标签的过程。具有相同标签的一组像素成为较大图像的一个分割。

例如,以下是两张图像及其分割。

在第一张图像中,马的图片是一个与周围环境分开的单个分割。

在第二张图像中,左侧的道路在右侧被数字分割成不同的部分,并用不同的颜色显示。

因此,此过程降低了计算和处理的复杂性,特别是对于图像处理和 AI 算法,因为现在我们可以按分割级别进行工作,而不是一次处理整个图像,这可能会非常密集地进行计算并给资源带来压力。

现在,我们已经学习了一些分割的基础知识,让我们继续学习基于区域和基于边缘的分割。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

基于区域的分割

此过程涉及将图像划分为具有特定规则集的较小部分。此技术采用一种算法,将图像划分为具有共同像素特征的多个组件。该过程寻找图像中的部分段。小的部分可以包含来自相邻像素的相似像素,并随后增大尺寸。该算法可以获取周围像素的灰度级别。

它分为两种类型

  • 区域生长 - 此方法通过包含具有相似特征的相邻像素来递归地增长分割。它使用灰度区域的灰度级差异和纹理图像的纹理差异。

  • 区域分裂 - 在此方法中,整个图像被视为单个区域。现在,要将区域划分为多个部分,它会检查初始区域中包含的像素是否遵循预定义的标准。如果它们遵循相似的规则,则将它们放入一个部分。

基于边缘的分割

在基于边缘的分割中,图像的边界或边缘彼此之间以及与图像的背景之间存在显着差异。此事实用于对具有不同强度级别和边缘不连续性的图像进行边缘检测。边缘包含相当多的关于图像的信息。此方法中的两个常见任务是边缘检测和边缘连接。在边缘检测中,识别边界。顾名思义,边缘连接涉及将一条边缘与另一条边缘连接起来。一种常用的检测轮廓的技术是阈值处理。

现在,让我们来看一下边缘和区域分割的代码实现。

代码实现 - 基于边缘的

示例

import numpy as np import matplotlib.pyplot as plt from skimage import data from skimage.feature import canny from scipy import ndimage as ndi coins = data.coins() h = np.histogram(coins, bins=np.arange(0, 256)) figure, (ax_1) = plt.subplots() ax_1.imshow(coins, cmap=plt.cm.gray) edges = canny(coins/255.) figure, axis = plt.subplots(figsize=(6, 4)) axis.imshow(edges, cmap=plt.cm.gray) axis.axis('off') axis.set_title('Detect canny') fc = ndi.binary_fill_holes(edges) figure, axis = plt.subplots(figsize=(6, 4)) axis.imshow(fc, cmap=plt.cm.gray) axis.axis('off') axis.set_title('hole fill')

输出

Text(0.5, 1.0, 'hole fill')

代码实现 - 基于区域的

示例

from skimage.filters import sobel import numpy as np import matplotlib.pyplot as plt from skimage import data from skimage.feature import canny from scipy import ndimage as ndi coins = data.coins() elmap = sobel(coins) figure, axis = plt.subplots(figsize=(6, 4)) axis.imshow(elmap, cmap=plt.cm.gray) axis.axis('off') axis.set_title('map elevation')

输出

Text(0.5, 1.0, 'map elevation')

结论

基于区域和基于边缘的分割在依赖于基于图像和视频的操作的现代算法中非常有用。这些技术很简单,但功能强大。

更新于:2023年3月23日

14K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告