![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте. Помогите вычислить средний цвет блока по заданию:
" Цикл перебора по всем блокам входной картинки (размер блока 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
|
||||
|
||||
|
когда то делал гауссово размытие.
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. |