gpt4 book ai didi

algorithm - 重叠图像选择算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:25:22 25 4
gpt4 key购买 nike

我有一组覆盖某些区域的重叠图像,我的目标是构建联合图像,而最终图像的每个像素对应于其中一个源图像的适当像素。因此,目标是为每个像素选择合适的源图像。

正式来说我们有以下内容:

  • 每个源图像的每个像素都有其分数。
  • 如果最终图像的两个相邻像素来自不同的源图像 - 会有惩罚,具体取决于特定像素和源图像。

目标是最大化总分。

简单地说,目标是构建图像的马赛克,而图像中的图像质量并不统一,而且马赛克切割线应该位于它们最不可见的地方。

这是一个现实世界的问题,因此像素分数是一个平滑缓慢变化的函数,“像素”选择不应按字面意思对待,它更多的是选择合适的区域。 p>

我目前的算法如下:

  1. 从得分最高的源图像中选择源图像
  2. 将同一来源的相邻像素合并成云。
  3. 带惩罚的云边界局部优化。
  4. 测试可以完全消失的云(即从其内部获得的分数并不能抵消其边界的惩罚)

这是(希望)已知解决方案的已知问题吗?近似解应该可以。

最佳答案

这确实是计算机图形学研究中的一个众所周知的问题。

它通常被视为一个离散优化问题,其中重叠区域中的每个像素都是一个离散变量,每个可能的像素源都有一个状态。要最小化的能量(或误差)函数通常包含在人眼可能检测到的区域中惩罚过渡的项(例如,它惩罚切断强梯度),以及鼓励从同一源中选择相邻像素的项。

一旦定义了能量函数,通常会使用称为 Graphcuts 的算法对其进行求解。该算法与图中的最大流/最小割问题有关,但它可用于解决相当大类的离散优化问题。请注意,实现 Graph Cuts 并非易事,您可能应该寻找代码。 boost::graph 实现了 Boykow-Kolmogorov 算法,afaik,这是最大流/最小切割算法变体,通常用于网格(即图像)上的 Graphcut 问题。

为了帮助您入门,请查看以下论文:

http://www.cc.gatech.edu/cpl/projects/graphcuttextures/gc-final-lowres.pdf

它是关于将图像拼接在一起以创建纹理(以及拼接视频),但本质上它所做的事情与您想要实现的目标非常相似。

此外,谷歌搜索“图像拼接”或“图像马赛克”,可能与“SIGGRAPH”相关,后者是图形领域的主要科学 session 。

关于algorithm - 重叠图像选择算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16765053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com