Добавление шума в изображениеDelphi , Графика и Игры , BitmapДобавление шума в изображение
Автор: Fenik { **** UBPFD *********** by delphibase.endimus.com **** >> Добавление шума в изображение Зависимости: Graphics Автор: Fenik, chook_nu@uraltc.ru, Новоуральск Copyright: Автор Федоровских Николай Дата: 5 июня 2002 г. ***************************************************** } procedure AddNoise(Bitmap: TBitmap; Amount: Integer; Mono: Boolean); {Если Mono = False, то точки цветные, иначе - чёрно-белые. Процедура взята из библиотеки FastLIB и немного переделана} 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; Пример использования: AddNoise(FBitmap, 65, False); Программный код на Delphi для добавления шума в изображение. Процедура
Код использует модуль Процедура сначала устанавливает формат пикселей в изображении в 24-разрядный. Затем она случайно генерирует значение Если Если Конечный результат - изображение с добавленным шумом. Некоторые предложения по улучшению:
Альтернативное решение - использовать библиотеку для обработки изображений, которая предоставляет встроенные функции для генерации шума. Это будет, вероятно, более эффективно и проще в использовании, чем написание собственного.custom implementation от scratch. Добавление шума в изображение - процедура на языке Delphi, которая генерирует случайные изменения оттенков цвета пикселей в изображении. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |