python3如何使用边缘分割图像_Python图像处理:基于边缘/区域的图像分割

图像分割的概念

图像分割是将图像分割成不同的区域或类别,并使这些区域或类别对应于不同的目标或局部目标。每个区域包含具有相似属性的像素,并且图像中的每个像素都分配给这些类别之一。一个好的图像分割通常指同一类别的像素具有相似的强度值并形成一个连通区域,而相邻的不同类别的像素具有不同的值。这样做的目的是简化成改变图像的表示形式,使其更有意义、更易于分析。

如果分割做得好,那么图像分析的所有其他阶段都将变得更简单。因此,分割的质量和可靠性决定了图像分析是否成功。但是如何将图像分割成正确的片段通常是一个非常具有挑战性的问题。

分割技术可以是非上下文的(不考虑图像中特征和组像素之间的空间关系,只考虑一些全局属性,例如颜色或灰度),也可以是上下文的(另外利用空间关系,例如对具有相似灰度的空间封闭像素分组)。在本章中,我们将讨论不同的分割技术,并使用scikit-image、python-opencv(cv2)和SimpleITK库函数演示基于Python的图像分割实现。为此,从导入本章所需的库开始,如下面的代码所示:

import numpy as np

from skimage.transform import (hough_line, hough_line_peaks, hough_circle,

hough_circle_peaks)

from skimage.draw import circle_perimeter

from skimage.feature import canny

from skimage.data import astronaut

from skimage.io import imread, imsave

from skimage.color import rgb2gray, gray2rgb, label2rgb

from skimage import img_as_float

from skimage.morphology import skeletonize

from skimage import data, img_as_float

import matplotlib.pyplot as pylab

from matplotlib import cm

from skimage.filters import sobel, threshold_otsu

from skimage.feature import canny

from skimage.segmentation import felzenszwalb, slic, quickshift, watershed

from skimage.segmentation import mark_boundaries, find_boundaries

本节的这个例子源自scikit-image文档,它演示了如何从背景中分割目标。先使用基于边缘的分割算法,然后使用基于区域的分割算法。将源自skimage.data的硬币图像作为输入图像,在较幽暗的背景下勾勒出了硬币的轮廓。

如下代码实现了显示其灰度图像及其强度直方图:

coins = data.coins()

hist = np.histogram(coins, bins=np.arange(0, 256), normed=True)

fig

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值