2

假设我已经计算了(灰度图像的)梯度。

梯度是 X 和 Y 方向上相邻像素之间的差异。

我可以计算图像回来,有这个梯度信息?

我可以以某种方式过滤梯度数据,以便反向操作给出一些合理的结果吗?

4

3 回答 3

2

梯度是两个相邻像素的颜色之间的差异。要取回图像,您需要一条信息:边界像素的初始颜色。

就像在数学中一样,只要涉及常数项,就可以通过积分来反转推导。或者,如果你有,只有在你也知道的情况d = a - b下才能回来。ab

如果没有边界值,您仍然可以恢复图像,但不能以相同的饱和度和对比度恢复。整个图像中将缺少一个常数项。

例子

考虑一个只有 3 个像素的图像:42, 142, 100. 梯度将是0, 100, -42(将其计算为当前像素与前一个像素之间的差异)。为了取回初始图像,我们假设第一个像素是0,然后做加法而不是减法:恢复的图像将是0, 100, (100-42). 如您所见,添加42到所有这些将使我们返回初始图像。

于 2013-06-24T10:43:50.557 回答
1

就在这里。正如Mihai的回答所述,它基本上是整合。

这项任务的一项著名工作是Pérez 等人的Poisson Image Editing 。你应该看看论文中的图片,也许尝试实现它(这是图像处理课程中的经典作业)。

于 2013-07-31T11:48:25.933 回答
1

对梯度场进行积分是一项常规操作,即Shading和Photometric Stereo中的Shape,其中获得表面法线然后积分。为了确保获得合理的结果,您必须强制执行可积性约束。关于这个主题有几篇论文。你可以试试这个标题为An Algebraic Approach to Surface Reconstruction from Gradient Fields的文章。作者提供了 MATLAB 代码。

于 2015-03-06T18:27:42.587 回答