我正在应用基于Yuri Boykov在C ++中的实现的3D图形切割,itk和最小切割/最大流量的增强。首先,我提供一些前景和背景种子。然后我创建图形并使用3D邻域(边界项)将权重分配给边缘:
weight=vcl_exp(-vcl_pow(pixelDifference,2)/(2.0*sigma*sigma)),
然后我根据强度概率直方图(区域术语)分配源/宿边缘:
this->Graph->add_tweights(nodeIterator.Get(),
-this->Lambda*log(sinkHistogramValue),
-this->Lambda*log(sourceHistogramValue));
所以能量函数是E= regional term+boundary term
。然后,切换是通过Boycov的实现来计算的,但我不确切地知道如何。无论如何,现在我想在切割之前添加一个形状,但我不知道如何做到这一点。
希望我的问题很容易理解。
非常感谢,
凯伦