我正在编写一个 iPhone 应用程序,在弄清楚如何拍摄图像并将其混合成单一颜色时需要帮助。我假设我需要进行高斯混合,但不确定这是否正确或如果正确,该怎么做。
您是否有任何建议,指向示例高斯混合代码片段的指针,或者我是否朝着错误的方向前进以从图像到混合彩色图像?
看来我不能用现有的 iPhone 框架做到这一点,或者公共框架中是否有私有方法可以使这项工作更容易?
我正在编写一个 iPhone 应用程序,在弄清楚如何拍摄图像并将其混合成单一颜色时需要帮助。我假设我需要进行高斯混合,但不确定这是否正确或如果正确,该怎么做。
您是否有任何建议,指向示例高斯混合代码片段的指针,或者我是否朝着错误的方向前进以从图像到混合彩色图像?
看来我不能用现有的 iPhone 框架做到这一点,或者公共框架中是否有私有方法可以使这项工作更容易?
因此,您想拍摄一张图像并“将其混合为单一颜色”。您是否试图获得图像的“平均颜色”?
如果是这样,使用高斯滤波器可能会使它过于复杂,因为您需要的输出只是单个 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;
高斯过滤器是一个中心加权过滤器,这意味着过滤窗口中心的像素比其他像素的权重更大。如果您想模糊图像,那么这是合适的,但是对于混合整个图像,对所有像素进行同等加权,如上面的伪代码一样,同样有效。