0

我看过几张图片,它们通常用许多较小的图片来做一张脸。

例如,假设他们将 100 张图像平铺在 10x10 网格中,并且以某种方式改变了较小图像的色调/饱和度/颜色,因此当您看到大图时,您会看到另一张图像。

问题归结为 - 说你有一个形象。您将对该图像应用哪种算法,以使该图像的平均 RGB 值是您定义的值?

4

1 回答 1

3
  1. 计算每个图块的色调/饱和度/值(使用 HSV,因为这里的较小差异在人眼看来比在 RGB 空间中更“自然”)
  2. 现在为你的大图的每个 n*n 块计算相同的值
  3. 找到具有最接近 HSV 值(最小值sqrt((h1-h2)^2 - (s1-s2)^2 - (v1-v2)^))的图块,并将按比例缩小到 n*n 的图块标记到结果中。

要找到图块的 HSV,将所有 RGB 值求和然后将它们除以像素数并将最终的 RGB 三元组转换为 HSV 就足够了。但为了省钱,我建议你试试这两个版本。

查看关于 RGB <-> HSV 转换的Wikipedia 文章

为了改进算法,您可以将每个图块拆分为一个mm 并计算每个网格元素的平均 HSV。然后,当您寻找匹配项时,照常将大图像划分为 m m HSV 值。选择与这些 m*m 中的大多数最匹配的图块。这允许算法选择与大图具有相同结构的图块。

对于额外的触摸,尝试创建一个千兆像素图像

于 2009-02-16T13:04:58.797 回答