【问题标题】:Gaussian blend of image图像的高斯混合
【发布时间】:2017-11-01 20:22:50
【问题描述】:

我正在编写一个 iPhone 应用程序,在弄清楚如何拍摄图像并将其混合成单一颜色时需要帮助。我认为我需要进行高斯混合,但不确定这是否正确,或者如果正确,该怎么做。

您是否有任何建议,指向示例高斯混合代码 sn-ps 的指针,或者我是否在错误的方向上从图像到混合彩色图像?

我似乎无法使用现有的 iPhone 框架来做到这一点,或者公共框架中是否有私有方法可以使这项工作变得更容易?

【问题讨论】:

    标签: ios objective-c colors gaussian color-blending


    【解决方案1】:

    因此,您想拍摄一张图像并将其“混合成单一颜色”。您是否尝试获取图像的“平均颜色”?

    如果是这样,使用高斯过滤器可能会过于复杂,因为您需要的输出只是单个 RGB 值。最简单的方法是计算每个颜色通道(红色、绿色和蓝色)的平均值:

    int r,g,b;
    r=g=b=0;
    
    for (y=0 ; y<image_height ; y++)
        for (x=0 ; x<image_width ; x++)
        {
            r = r + image[y,x,0];
            g = g + image[y,x,1];
            b = b + image[y,x,2];
        }
    
    num_pixels = image_height * image_width;
    average_r = r / num_pixels;
    average_g = g / num_pixels;
    average_b = b / num_pixels;
    

    高斯过滤器是一个中心加权过滤器,这意味着过滤窗口中心的像素比其他像素的权重更大。如果您想模糊图像,那么这是合适的,但是对于混合整个图像,对所有像素进行同等加权,就像上面的伪代码一样有效。

    【讨论】:

    • 感谢您的澄清和伪代码。我使用它效果很好,现在可以将图像转换为其平均颜色。
    猜你喜欢
    • 2018-01-30
    • 2014-04-12
    • 2017-04-21
    • 2021-09-30
    • 2015-09-12
    • 2015-04-10
    • 2015-05-09
    • 2014-01-14
    • 2019-10-14
    相关资源
    最近更新 更多