1
我正在写一个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;
高斯滤波器是中心加权滤波器,这意味着在的中心的像素过滤窗口的权重比其他窗口更重。如果你想模糊图像,那么这是合适的,但是对于混合整个图像,像上面的伪码一样对所有像素进行同等加权也是一样有效的。
感谢您的澄清和伪代码。我用它效果很好,现在可以将图像转换为平均颜色。 – jangelo42 2011-02-02 22:15:43