A Bayesian Approach to Digital Matting

这是一个基于Bayesian概率框架的matting算法,和机器学习有点类似都是要获得概率最大的解。


算法步骤如下:

(1)利用Getcontour来得到需要处理的点集S(我目前采用的是按行选取),若该点集为空则执行步骤(6)

(2)枚举点集S中的一个点x

(3)在x点周围分别统计出背景,前景高斯模型,并分别分成三类点集(这里分成三类点集效果不好

(4)对每个点集对(背景vs前景)利用论文中公式(9-10)计算出B,F,alpha,然后利用公式(4-5),(8)算出其

似然概率,并选取概率最大的一对来更新点x的alpha

(5)点集S还没枚举完则返回(2),否则执行步骤(1)

(6)根据得到的alpha值矩阵来生成matting灰度图


目前我实现的算法可能存在的不足:

1.轮廓的获取可能还需要改善

2.wi权重赋值目前都为1.0,因为按照论文中的方式赋值出来的值太小(结果表明影响不大

3.论文中公式(9-10)的迭代次数为5


实验结果:

A Bayesian Approach to Digital Matting_第1张图片


A Bayesian Approach to Digital Matting_第2张图片

可以看到上面还是有比较明显的误差我觉得可能在

weight,采集点集,以及初始化alpha值这三个方面可以做进一步改进!


你可能感兴趣的:(算法,框架)