我有一个场景的边缘地图,并希望提取最佳分隔天空和地形的边缘。这似乎很好地构成了图遍历问题。然而,诸如A *之类的流行搜索算法依赖于起点和终点的使用(分别不是第一列和最后一列)。是否有任何图形搜索算法不需要这些参数?我还想最大化提取边缘的一些全局特征,例如平滑度。 注意:速度是一个重要问题,需要实时完成。
答案 0 :(得分:1)
计算机视觉研究人员用minimum cuts攻击了这类问题。维基百科有一整个article about graph cuts in computer vision。我将在这里草绘Greig,Porteous和Seheult提出的算法,他们是第一个建立此连接的算法。
假设我们有一个像素颜色的函数来记录像素天空与地形的可能性。为每个像素准备一个包含源顶点,接收器顶点和顶点的图形。将源连接到每个像素,其容量等于该像素为天空的对数似然。将每个像素连接到接收器,其容量等于该像素为地形的对数似然。对于每对相邻像素,连接它们的容量等于它们具有不同分类的对数似然。计算最小切割。切割源侧的所有顶点都被分类为天空,切割的水槽侧的所有顶点都被归类为地形。
或者,如果已知地形位于图像的底部并且已知天空位于顶部,则将源连接到每个顶部像素并将底部像素连接到接收器,无限容量。然后我们可以省去基于颜色对像素进行分类的对数似然,使边缘容量随相邻像素颜色的相似性而变化。