Гауссовская смесь изображения - PullRequest
1 голос
/ 02 февраля 2011

Я пишу приложение для iPhone и нуждаюсь в помощи, чтобы понять, как сделать изображение и смешать его в один цвет. Я предполагаю, что мне нужно сделать гауссову смесь, но я не уверен, правильно ли это или как это сделать, если это так.

Есть ли у вас какие-либо предложения, указатели для образцов фрагментов гауссовского кода наложения или я движусь в неправильном направлении, чтобы перейти от изображения к смешанному цветному изображению?

Похоже, я не могу сделать это с существующими платформами iPhone или есть частные методы в общедоступных платформах, которые облегчат эту работу?

1 Ответ

0 голосов
/ 02 февраля 2011

Итак, вы хотите взять изображение и «смешать его в один цвет».Вы пытаетесь получить «средний цвет» для изображения?

Если это так, использование фильтра Гаусса, возможно, усложняет его, поскольку требуемый вывод - это просто одно значение 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;

Гауссов фильтр - это фильтр с центральным взвешиванием , что означает, чтопиксель в центре окна фильтрации имеет больший вес, чем остальные.Если вы хотите размыть изображение, то это уместно, но для смешивания всего изображения одинаково эффективен вес всех пикселей, как в приведенном выше псевдокоде.

...