Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2013, 01:41   #1
Євгеній Бєлік
Пользователь
 
Аватар для Євгеній Бєлік
 
Регистрация: 29.10.2011
Сообщений: 52
По умолчанию алгоритм с уровнем шума...

вот есть такой алгоритм добавления шума:
Код:
procedure AddNoise(Bitmap: TBitmap; Amount: Integer; Mono: Boolean);

  function BLimit(B: Integer): Byte;
  begin
    if B < 0 then
      Result := 0
    else if B > 255 then
      Result := 255
    else
      Result := B;
  end;

type
  TRGB = record
  B, G, R: Byte;
  end;
  pRGB = ^TRGB;
var
  x, y, i, a: Integer;
  Dest: pRGB;
begin
  Bitmap.PixelFormat := pf24Bit;
  Randomize;
  i := Amount shr 1;
  if Mono then
    for y := 0 to Bitmap.Height - 1 do
    begin
      Dest := Bitmap.ScanLine[y];
      for x := 0 to Bitmap.Width - 1 do
      begin
        a := Random(Amount) - i;
        with Dest^ do
        begin
          r := BLimit(r + a);
          g := BLimit(g + a);
          b := BLimit(b + a);
        end;
        Inc(Dest);
      end;
    end
  else
    for y := 0 to Bitmap.Height - 1 do
    begin
      Dest := Bitmap.ScanLine[y];
      for x := 0 to Bitmap.Width - 1 do
      begin
        with Dest^ do
        begin
          r := BLimit(r + Random(Amount) - i);
          g := BLimit(g + Random(Amount) - i);
          b := BLimit(b + Random(Amount) - i);
        end;
        Inc(Dest);
      end;
    end;
end;
подскажите как дописать код что бы можно было регулировать уровень шума, как в фотошопе:
Изображения
Тип файла: jpg шум в фотошопе.jpg (136.9 Кб, 76 просмотров)
Євгеній Бєлік вне форума Ответить с цитированием
Старый 08.01.2013, 01:58   #2
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Ну так второй параметр функции для этого вроде и предназначен.
Код:
AddNoise(bitmap, 10000, true);
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 08.01.2013, 14:56   #3
Євгеній Бєлік
Пользователь
 
Аватар для Євгеній Бєлік
 
Регистрация: 29.10.2011
Сообщений: 52
По умолчанию

ууу точно, я думал нужно изменять сам код процедуры, а оказывается только параметр отвечает за это, спасибо тебе!
Євгеній Бєлік вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать уровень шума на микрофоне Slicker C# (си шарп) 5 23.05.2012 09:04
Избавление от шума на каптче Arsenx777 Общие вопросы Delphi 14 18.03.2012 17:40
Алгоритм устранения шума в звуковом файле maxover Мультимедиа в Delphi 0 10.03.2012 13:07
Довольны ли вы уровнем шума своего ПК? _dx Компьютерное железо 31 04.07.2009 23:02
ГСЧ на основе шума. RomanIgorevi4 Общие вопросы C/C++ 0 04.06.2009 22:16