我有一个类似黑盒的程序(编译代码),它从文本中生成这样的图像。我的目标是在我的程序中重新创建这样的算法。问题是我需要完全相同的算法。我沿着 x 轴尝试了 sin-wave,结果非常相似,但实际上不一样。
谁能告诉我使用了什么图像失真过滤器,也许可以在哪里阅读它的算法/实现。谢谢。
此处具有所需结果的图像:
我有一个类似黑盒的程序(编译代码),它从文本中生成这样的图像。我的目标是在我的程序中重新创建这样的算法。问题是我需要完全相同的算法。我沿着 x 轴尝试了 sin-wave,结果非常相似,但实际上不一样。
谁能告诉我使用了什么图像失真过滤器,也许可以在哪里阅读它的算法/实现。谢谢。
此处具有所需结果的图像:
我认为不可能对完全相同的算法进行逆向工程,因为他们可能只是添加了一点随机盐来阻止你这样做。您可能希望获得足够相同的算法,而不是完全相同的算法。
如果我是你,我会:
将此算法视为像素映射函数,这意味着它看起来像:
New picture Raw picture
(0,0) (0,0)
(0,1) (0,0)
(0,2) (1,2)
(0,3) (1,3)
... ...
决定新像素应该映射到哪个原始像素。我想通过一个不变的函数来初始化映射函数,然后应用一个基于 Monte Carlo 的算法(如遗传算法)来训练这个函数。在每次迭代中,随机移动或复制一小组像素到相邻位置。最后,经过足够的迭代,您将获得理想的功能。
在过去,我在 Atari ST 上做过这个。我使用的算法是 p(x,y) = p(sin(x)), (sin(y)) 但在 y 轴上,您需要添加或加倍像素或线条。这个技巧使特殊看起来像流动的水效果。事实上这是一个错误,我忘了删除 y 轴上的像素。