|
|
|
|
|
|
|
|
страницы:
1
2
3
Текущая страница: 1
|
|
Белорусский Государственный Университет Информатики и Радиоэлектроники
Контрольная работа по МАГИ
Выполнил студент группы 500501 Балахонов Е.В.
Задание.
Создать программу, осуществляющую фильтрацию шумов в растровых изображениях методами усредняющего, порогового и медианного фильтров.
Програма написана на языке Object Pascal и выполняется в среде Win32. Общий вид программы показан на рис. № 1.
Рис. № 1. Общий вид главного окна программы.
Рис. № 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;
Summ := Summ + PrevisionLine^[J];
if J + 1 < Image1.Picture.Bitmap.Width then begin Summ := Summ + PrevisionLine^[J + 1]; end; end;
if J > 0 then begin Summ := Summ + CurrentLine^[J - 1]; end;
Summ := Summ + CurrentLine^[J];
if J + 1 < Image1.Picture.Bitmap.Width then begin Summ := Summ + CurrentLine^[J + 1]; end;
if I + 1 < Image1.Picture.Bitmap.Height then begin NextLine := Image1.Picture.Bitmap.ScanLine[I + 1]; if J > 0 then begin Summ := Summ + NextLine^[J - 1]; end;
Summ := Summ + NextLine^[J];
if J + 1 < Image1.Picture.Bitmap.Width then begin Summ := Summ + NextLine^[J + 1]; end; end;
if (Summ div 9) <= Value then CurrentLine^[J] := Summ div 9; end; end; Image1.Visible := False; Image1.Visible := True; N4.Enabled := True; end else MessageBox(Handle,'Такой формат файла пока не подерживается...', 'Слабоват я пока...',MB_OK or MB_ICONSTOP or MB_APPLMODAL); end;
Рис. № 3. Результат работы усредняющего фильтра.
2. Пороговый фильтр.
Пороговый фильтр является модификацией усредняющего, и отличие заключается том, что замена значения яркости на среднее производится толь-ко в том случае, если разность между значением яркости и полученным сред-ним превышает установленный порог. Выбор порога осуществляется в специальном диалоговом окне (Рис. 4). Для произведения фильтрации используется процедура AverageFilter, показанная в пункте 1.
Рис. № 4.Выбор коэффициента усреднения порогового фильтра.
Рис. № 5. Результат работы порогового фильтра. 3. Медианный фильтр.
Одномерный медианный фильтр пред-ставляет собой скользящее окно охватывающее нечетное число элементов изо-бражения. Центральный элемент заменяется медианой элементов изображения в окне. Медианой дискретной последовательности М элементов при нечетном 1 называют элемент, для которого существует (М-1)/2 элементе меньших или равных ему по величине и (М-1)/2 элементов больших или равных ему по ве-личине. Медианный фильтр в одних случаях обеспечивает подавление шума, а в других - вызывает нежелательное подавление сигнала. Медианный фильтр не влияет на пилообразные и ступенчатые функции, что обычно является полез-ным свойством, однако он подавляет импульсные сигналы, длительность которых составляет менее половины ширины окна. Фильтр также вызывает уплощение вершины треугольной функции. Возможны различные стратегии применения медианного фильтра для подавления шумов. Одна из них рекомендует начинать с медианного фильтра, окно которого охватывает три элемента изображения. Если ослабление сигнала незначительно, то окно расширяется до пяти элементов. Так поступают до тех пор, пока медианная фильтрация начнет приносить больше вреда, чем пользы. Другая возможность состоит в каскадной медианной фильтрации сигнала с использованием фиксированной или изменяемой ширины окна. В общем случае те области, которые остаются без изменения после однократной обработки, не меняются и после повторной обработки. Области, в которых длительность им-пульсных сигналов составляет менее половины ширины окна, будут подвер-гаться изменениям после каждого цикла обработки. Концепцию медианного фильтра можно легко обобщить на два измерения, применяя окно прямоугольной или близкой к круговой формы.
Текущая страница: 1
|
|
|
|
|
Предмет: Информатика
|
|
Тема: Фильтрация шумов в растровых изображениях методами усредняющего, порогового и медианного фильтров |
|
Ключевые слова: шумов, Фильтрация шумов в растровых изображениях методами усредняющего порогового и медианного фильтров, растровых, медианного, графика, Программирование и комп-ры, Программирование, машинная, порогового, графический, фильтр, комп-ры, Фильтрация, изображениях, усредняющего, фильтров, методами, машинная графика графический фильтр |
|
|
|
|
|
|
|
|