4

我有一个类似黑盒的程序(编译代码),它从文本中生成这样的图像。我的目标是在我的程序中重新创建这样的算法。问题是我需要完全相同的算法。我沿着 x 轴尝试了 sin-wave,结果非常相似,但实际上不一样。

谁能告诉我使用了什么图像失真过滤器,也许可以在哪里阅读它的算法/实现。谢谢。

此处具有所需结果的图像:

需要这样的扭曲

4

2 回答 2

1

我认为不可能对完全相同的算法进行逆向工程,因为他们可能只是添加了一点随机盐来阻止你这样做。您可能希望获得足够相同的算法,而不是完全相同的算法。

如果我是你,我会:

  1. 将此算法视为像素映射函数,这意味着它看起来像:

    New picture        Raw picture
    (0,0)              (0,0)            
    (0,1)              (0,0)
    (0,2)              (1,2)
    (0,3)              (1,3)
    ...                ...
    
  2. 决定新像素应该映射到哪个原始像素。我想通过一个不变的函数来初始化映射函数,然后应用一个基于 Monte Carlo 的算法(如遗传算法来训练这个函数。在每次迭代中,随机移动或复制一小组像素到相邻位置。最后,经过足够的迭代,您将获得理想的功能。

于 2012-12-16T11:17:30.293 回答
1

在过去,我在 Atari ST 上做过这个。我使用的算法是 p(x,y) = p(sin(x)), (sin(y)) 但在 y 轴上,您需要添加或加倍像素或线条。这个技巧使特殊看起来像流动的水效果。事实上这是一个错误,我忘了删除 y 轴上的像素。

于 2012-12-16T11:36:44.267 回答