【问题标题】:Editing an image according to desired average color根据所需的平均颜色编辑图像
【发布时间】:2021-10-17 18:45:40
【问题描述】:

我正在尝试提出一种算法,该算法将根据源图像和所需的结果图像的平均颜色作为输入输出彩色/修改后的图像。

假设我希望平均颜色为#ffcc00 - 然后对于任何给定图像,我可以获得平均颜色正好为#ffcc00 的新图像。只要形状可识别,我不介意生成的图像是否经过大量修改。

我应该如何处理这个问题?

【问题讨论】:

  • Bogofill:不断将随机像素修改为随机值,直到达到平均值? (嗯,当我想到这个时,可能会产生分歧。)
  • 我的回答解决了您的问题吗?如果是这样,请考虑接受它作为您的答案 - 通过单击计票旁边的空心对勾/复选标记。如果没有,请说出什么不起作用,以便我或其他人可以进一步为您提供帮助。谢谢。 meta.stackexchange.com/questions/5234/…

标签: algorithm image colors


【解决方案1】:

我认为您需要将#ffcc00 视为三个不同的部分。您想让红色通道平均值变为 255,绿色通道平均值变为 204,蓝色通道平均值变为 0。

如果您的图像是无符号 8 位的,则所有像素都将在 0..255 范围内,即没有负值。因此,使红色通道平均值为 255 的唯一方法是所有像素的红色 = 255。同样,使蓝色通道平均为 0 的唯一方法是使所有像素的蓝色分量为零。

只剩下绿色通道。因此,您拥有具有某个平均值的现有绿色通道,并且您希望将该值转换为 204,因此您实际上希望将所有绿色通道像素乘以 204/(当前平均值)。如果新均值高于旧均值,则某些像素将达到 255 并裁剪,因此您可能需要反复乘以一点,直到得到所需的值。同样,如果所需的新均值低于现有均值,则某些像素可能会剪裁为零,您可能需要迭代并乘以少一点,直到得到所需的值。

查看here 以获得更科学的答案。

【讨论】:

    猜你喜欢
    • 2012-07-28
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 2017-11-12
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    相关资源
    最近更新 更多