Фильтрация шумов в растровых изображениях методами усредняющего, порогового и медианного фильтров
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: контрольная 2, доклад по истории на тему
| Добавил(а) на сайт: Рыжанов.
1 2 3 4 5 6 | Следующая страница реферата
Белорусский Государственный Университет
Информатики и Радиоэлектроники
Контрольная работа
по
МАГИ
Выполнил студент группы 500501
Балахонов Е.В.
Задание.
Создать программу, осуществляющую фильтрацию шумов в растровых изображениях методами усредняющего, порогового и медианного фильтров.
Програма написана на языке Object Pascal и выполняется в среде Win32.
Общий вид программы показан на рис. № 1.
[pic]
Рис. № 1. Общий вид главного окна программы.
[pic]
Рис. № 2. Общий вид главного окна программы c загруженным исходным изображением.
1. Усредняющий фильтp.
Алгоритм работы усредняющего фильтра заключается в замене значения яркости в текущем пикселе на среднюю яркость, вычисленную по его 8 окрестностям, включая и сам элемент. Этот фильтр является самым простым. К недостаткам его можно отнести сглаживание ступенчатых и пилообразных функций. Кроме того пиксели, имеющее существенно отличное значение яркости и являющимися шумовыми могут вносить значительный вклад в результат обработки.
Реализация фильтра представлена в виде процедуры:
Procedure AverageFilter(Value:Integer);
Данная процедура осуществляет алгоритм усредняющего фильтра применительно к объекту TBitmap. В него предварительно должна быть загружено изображение (Рис. № 2). Результат работы усредняющего филтра можно увидеть на рис. № 3. Параметр Value – порог при котором производятся манипуляции с пикселом.
Procedure TMainForm.AverageFilter;
var
PrevisionLine:pByteArray;
CurrentLine:pByteArray;
NextLine:pByteArray;
I,J:Integer;
Summ:Integer;
begin if Image1.Picture.Bitmap.PixelFormat = pf8bit then begin for I := 0 to Image1.Picture.Bitmap.Height - 1 do begin
CurrentLine := Image1.Picture.Bitmap.ScanLine[I]; for J := 0 to Image1.Picture.Bitmap.Width - 1 do begin
Summ := 0;
if I > 0 then begin
PrevisionLine := Image1.Picture.Bitmap.ScanLine[I - 1]; if J > 0 then begin
Summ := Summ + PrevisionLine^[J - 1]; end;
Рекомендуем скачать другие рефераты по теме: экзамены, реферат деловой.
Категории:
1 2 3 4 5 6 | Следующая страница реферата