Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.03.2011, 15:38
Sanny007 Sanny007 вне форума
Прохожий
 
Регистрация: 14.03.2011
Сообщения: 15
Репутация: 10
По умолчанию Помогите вычислить средний цвет блока

Здравствуйте. Помогите вычислить средний цвет блока по заданию:
" Цикл перебора по всем блокам входной картинки (размер блока k*k пикселей). Вычислить средний цвет блока C sr = (1/(k sqr 2)) * Ʃ (где i= от 1 до k)*Ʃ (где j= от 1 до k)*C i,j , где каждый C i,j и C sr - вектор (red, green, blue) компонентов цветов: красного, зелёного и синего соответственно".
Нужно это представить в виде кода программы в Delphi 7. Заранее большое спасибо. )
Ответить с цитированием
  #2  
Старый 24.03.2011, 18:26
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

когда то делал гауссово размытие.
level это то же что и k

Код:
kof:=1/(sqr(level));
for i:=0 to Image.width do
    for j:=0 to image.height do
        begin
            r:=0;
           g:=0;
            b:=0;
            for ii:=-level to level do
                for jj:=-level to level do
                    begin
                        ik:=i+ii;
                         jk:=j+jj;
                        if   (ik>=0)and (jk>=0) and (ik<=image.width)and (jk<=image.height) then
                            begin
                                r:=r+image.texture[jk,ik].R;
                                g:=g+image.texture[jk,ik].g;
                                b:=b+image.texture[jk,ik].b;
                            end;
                    end;
          image.texture[j,i].R:=round(r*kof);
          image.texture[j,i].g:=round(g*kof);
          image.texture[j,i].b:=round(b*kof);
   end;

Последний раз редактировалось Pilot_Red, 24.03.2011 в 18:44.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:09.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025