免费jsp源码分享网站,wordpress+谷歌加速,最好最值得做的调查网站,云南城市建设职业学院网站GrabCut算法原理 Grabcut是基于图割(graph cut)实现的图像分割算法#xff0c;它需要用户输入一个bounding box作为分割目标位置#xff0c;实现对目标与背景的分离/分割#xff0c;与KMeans与MeanShift等图像分割方法不同。 Grabcut分割速度快#xff0c;效果好#xff0…
GrabCut算法原理 Grabcut是基于图割(graph cut)实现的图像分割算法它需要用户输入一个bounding box作为分割目标位置实现对目标与背景的分离/分割与KMeans与MeanShift等图像分割方法不同。 Grabcut分割速度快效果好支持交互操作因此在很多APP图像分割/背景虚化的软件中可以看到其身影。主要需要如下知识k均值聚类、高斯混合模型建模(GMM)、max flow/min cut。
GrabCut算法的主要步骤
初始化首先用户需要手动指定一个包含前景的矩形框作为算法的初始估计。然后通过K均值聚类算法将图像中的像素分成前景和背景两类。建立高斯混合模型使用高斯混合模型来估计前景和背景的颜色分布。该模型包含若干个高斯成分每个成分代表一个颜色分布。通过最大似然估计来确定混合模型的参数。计算像素属于前景或背景的概率根据高斯混合模型计算每个像素属于前景或背景的概率。这可以通过贝叶斯定理来计算其中像素的颜色作为观测值混合模型的参数作为先验概率。更新分割结果根据像素属于前景或背景的概率更新图像的分割结果。具体来说根据概率将像素标记为前景或背景并将不确定的像素标记为可能的前景或背景。迭代更新重复执行步骤3和步骤4直到分割结果收敛或达到最大迭代次数。
GrabCut在图像分割中的应用 源码使用C实现其中高斯混合部分使用了OpenCV函数界面使用QT实现。界面如下图所示 打开图片文件后执行点击执行分割或者分割细化按钮即可获取分割结果 可点击返回回到图片的原始状态。
点击细化可以在处理的的基础上再用一次GrabCut算法。
可以存储处理过的图片。
支持通过选取部分区域后再进行分割 分割后可使用鼠标进行选择前景区域 更多的分割结果 本程序源码下载链接
GrabCut分割图片源码opencvQT实现的