图像分割方法

图像分割的应用:

图像分割(image segmentation)技术是计算机视觉领域的个重要的研究方向,是图像语义理解的重要一环。图像分割是指将图像分成若干具有相似性质的区域的过程,从数学角度来看,图像分割是将图像划分成互不相交的区域的过程。近些年来随着深度学习技术的逐步深入,图像分割技术有了突飞猛进的发展,该技术相关的场景物体分割、人体前背景分割、人脸人体Parsing、三维重建等技术已经在无人驾驶、增强现实、安防监控等行业都得到广泛的应用。图像分割方法_第1张图片

阈值分割方法

  阈值分割是常见的直接对图像进行分割的算法,根据图像像素的灰度值的不同而定。对应单一目标图像,只需选取一个阈值,即可将图像分为目标和背景两大类,这个称为单阈值分割;如果目标图像复杂,选取多个阈值,才能将图像中的目标区域和背景被分割成多个,这个称为多阈值分割,此时还需要区分检测结果中的图像目标,对各个图像目标区域进行唯一的标识进行区分。阈值分割的显著优点,成本低廉,实现简单。当目标和背景区域的像素灰度值或其它特征存在明显差异的情况下,该算法能非常有效地实现对图像的分割。阈值分割方法的关键是如何取得一个合适的阈值,近年来的方法有:用最大相关性原则选择阈值的方法、基于图像拓扑稳定状态的方法、灰度共生矩阵方法、最大熵法和峰谷值分析法等,更多的情况下,阈值的选择会综合运用两种或两种以上的方法,这也是图像分割发展的一个趋势。

  阈值法是一种较传统的图像分割算法。该算法以感兴趣的目标区域与背景之 间的灰度值存在差异,同时区域内具有均匀的灰度值为基础,通过设置一个或多个阈值将图像分割成多个区域。

  

  仅使用一个阈值分割的方法称为单阈值分割方法 。

  如果图像中有多个灰度值不同的区域,那么可以选择一系列的阈值以将每个像素分到合适的类别中去,这种用多个阈值分割的方法称为多阈值分割方法。图像分割方法_第2张图片

 

  阈值选取依据:

  1、仅取决于图像灰度值,仅与各个图像像素本身性质相关的阈值选取——全局阈值。

  2、取决于图像灰度值和该点邻域的某种局部特性,即与局部区域特性相关的的阈值选取——局部阈值。

  3、除取决于图像灰度值和该点邻域的某种局部特性之外,还取决于空间坐标,即得到的阈值与坐标相关——动态阈值或者自适应阈值。 全局阈值

  原理:假定物体和背景分别处于不同灰度级,图像被零均值高斯噪声污染,图像的灰度分布曲线近似用两个正态分布概率密度函数分别代表目标和背景的直方图,利用这两个函数的合成曲线拟合整体图像的直方图,图像的直方图将会出现两个分离的峰值,如下图然后依据最小误差理论针对直方图的两个峰间的波谷所对应的灰度值求出分割的阈值。

图像分割方法_第3张图片 

  该方法适用于具有良好双峰性质的图像,但需要用到数值逼近等计算,算法十分复杂,而且多数图像的直方图是离散、不规则的。

  在实际阈值分割过程中,往往需要能够自动获取阈值,下面的算法可以自动获得全局阈值:

  1)选取一个的初始估计值T;

  2)用T分割图像。这样便会生成两组像素集合:G1由所有灰度值大于T的像素组成,而G2由所有灰度值小于或等于T的像素组成。

  3)对G1和G2中所有像素计算平均灰度值u1和u2。 4)计算新的阈值:T=1/2(u1 + u2)。

  重复步骤(2)到(4),直到得到的T值之差小于一个事先定义的参数T。 下图是迭代阈值选择法图像分割的结果与Otsu(即最大相关性原则选择阈值的方法)阈值选择法图像分割的结果比较 两种方法效果相差不大。

图像分割方法_第4张图片

import cv2

import numpy as np

from matplotlib import pyplot as plt

img = cv2.imread('road.jpg', cv2.IMREAD_GRAYSCALE) #

img = np.array(img)

for i in range (len(img[i])):

    for j in range(len(img[i])):

                    if img [i][j] > 127:

                   img[i][j] = 255

     else:

           img[i][j] = 0

cv2.imwrite(‘outputing.ipg',img)

图像分割方法_第5张图片图像分割方法_第6张图片

(自动驾驶中的道路分割,即是把灰度值在阈值127两边的数差距增大,使其差别更加明显,在图像上形成一条白色的道路,让自动驾驶汽车更加容易找到正确的道路。)

  

你可能感兴趣的:(计算机视觉,算法,人工智能)