IPB
ЛогинПароль:

> Размытие изображение по Гауссу
ninja
сообщение 6.02.2011 18:32
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 103
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


Добрый вечер! Необходимо реализовать программу для размытия изображения методом Гаусса. В интернете примеров алгоритма не нашел, только математическую часть.

Начал реализовывать и столкнулся с такой проблемой что цвет состовляющей пикселя например R получается больше 255, а такого, быть не может

Код на С++

Скорей всего я не понял принцып работы алгоритма.

unsigned int *GausFilter(unsigned int *Image)
{
   unsigned int filter[3][3] = {1,2,1,
                                 2,4,2,
                                 1,2,1};
   unsigned char s = 0;
   float R,G,B;

   float ZnachR = 0;
   float ZnachG = 0;
   float ZnachB = 0;

   int x,y;

   for (int j = 0; j < *ImageHight; j++)
        {
           for (int i = 0; i < *ImageWidth; i++)
                {
                   R = G = B = 0;
                      if (j == 0)
                        {
                                ZnachR = float(MyGetRValue(Image[i * *ImageWidth + j])) / 255.0;
                                ZnachG = float(MyGetGValue(Image[i * *ImageWidth + j])) / 255.0;
                                ZnachG = float(MyGetGValue(Image[i * *ImageWidth + j])) / 255.0;

                                x = y = 0;
                                for (x = 2; x <= 3; x++)
                                        {
                                           for (y = 2; y <= 3; y++)
                                                {
                                                   R += ZnachR * filter[x][y];
                                                   G += ZnachG * filter[x][y];
                                                   B += ZnachB * filter[x][y];
                                                }
                                        }
                                R = ceil(R * 255);
                                G = ceil(G * 255);
                                B = ceil(B * 255);
                        }
                }
        }
} 


Заранее спасибо.

Если создал тему не в том разделе прошу прощения.

Сообщение отредактировано: ninja - 6.02.2011 18:34
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 26.07.2025 17:21
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"