从图像切片制作图像

时间:2009-02-16 12:08:54

标签: image-manipulation

我看过几张图片,他们通常用许多小图片制作一张脸。

例如,假设他们在10x10网格中平铺了100张图像,并且它们以某种方式改变了较小图像的色调/坐标/色调,这样当您看到大图片时,您会看到另一张图像。 / p>

问题归结为 - 说你有一张照片。您会对该图像应用哪种算法,以便该图像的平均RGB值是您定义的那个?

1 个答案:

答案 0 :(得分:3)

  1. 计算每个图块的色调/坐标/值(使用HSV,因为此处较小的差异对于人眼来说似乎比在RGB空间中更“自然”)
  2. 现在为大图片的每个n * n平铺计算相同的值
  3. 找到具有最接近的HSV值(最小值为sqrt((h1-h2)^2 - (s1-s2)^2 - (v1-v2)^))的图块,并将该图块按比例缩小为n * n到结果中。
  4. 要找到图块的HSV,应该足以将所有RGB值相加,然后将它们除以像素数,并将最终的RGB三元组转换为HSV。但是为了保存,我建议你试试这两个版本。

    请参阅which Wikipedia article了解RGB< - > HSV转换。

    要优化算法,您可以将每个图块拆分为m m,并计算每个网格元素的平均HSV。然后,当您查找匹配时,将大图像划分为常规,但也计算m m HSV值。选择哪个瓷砖最符合这些m * m的大部分。这允许算法选择与大图片具有相同结构的图块。

    要进行额外的触摸,请尝试创建gigapixel image