Цифр.обработка сигналов_Лабораторный_практикум. Сигналов
Скачать 7.16 Mb.
|
Лапласиан для " восьми соседей " ( двумерный фильтр высоких частот ) Оператор обработки двумерных данных, описываемый маской, приве- денной на рис. 1б реализует функцию выделения сигналов малоразмерных объектов от фоновой составляющей в видеосигнале. Выходной сигнал этого фильтра связан с входным сигналом уравнением вида y 2 (n 1 , n 2 )= –x(n 1 , n 2 )–x(n 1 –1, n 2 )–x(n 1 –2, n 2 )–x(n 1 , n 2 –1)+8x(n 1 –1, n 2 –1)– –x(n 1 –2, n 2 –1)–x(n 1 , n 2 –2)–x(n 1 –1, n 2 –2)–x(n 1 –2, n 2 –2). Фильтры высоких частот повышают уровень малоразмерных деталей в изображении. Такая фильтрация используется в тех случаях, когда необходи- мо исследовать высокочастотную структуру объекта [3]. Аналогичным образом можно описать связь выходного и входного сиг- налов двумерных нерекурсивных фильтров, маски которых приведены на рис.1, в–к. Выделение « края » ( перепада яркости в изображении ) Выделение «края» используется как предварительный шаг в процессе извлечения признаков изображения. Хотя выделение «края» в основном ис- пользуется в машинном зрении, оно конечно, имеет и другие применения. Например, информация о «крае», полученная в процессе его выделения, мо- жет быть использована в исходном изображении для усиления его четкости. 36 Выделение «края» можно использовать как метод для изготовления оригинальных изображений, которые могут затем ретушироваться в про- граммах рисования для создания высокохудожественного изображения [3]. Рассмотрим два метода усиления «края»: Выделение « края » по Лапласу Метод усиления края по Лапласу отличается от других методов тем, что края высвечиваются независимо от направления. Функция f(x, y) Лапласа за- писывается в виде L(f(x, y))=d 2 f/dx 2 + d 2 f/dy, где d 2 f/dx 2 – вторая частная производная по х, а d 2 f/dy – вторая частная произ- водная по у. Для дискретных функций вторые производные могут быть аппроксими- рованы следующим образом: d 2 f/dx 2 = f(x+1, y)–2 ⋅f(x, y)+f(x–1, y), d 2 f/dy = f(x, y+1)–2 ⋅f(x, y)+f(x, y–1). Таким образом, Лапласиан можно записать в следующем виде: L(f(x, y))=f(x+1, y)+f(x–1,y)+f(x, y–1)+f(x, y+1)–4 ⋅f(x, y). Это выражение можно рассматривать как импульсную характеристику фильтра, записанная в виде функции f(x, y). Для удобства знаки перед коэф- фициентами меняют на противоположные. Маска лапласиана для "четырех соседей" имеет вид: ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ − − − − = 0 1 0 1 4 1 0 1 0 ) y , x ( p Пример маски лапласиана для "восьми соседей" приведен на рис. 1б. Выделение « края » методом направленного градиента Иногда необходимо высветить и другие «края» изображения, не строго вертикальные или горизонтальные. Могут быть важны диагональные «края». Избирательное высвечивание краев в различных направлениях используется иногда для того, чтобы пользователь получил общее представление об изо- бражении. Метод направленного градиента как раз используется для этой це- ли. Для высвечивания «краев» в различных направлениях используется 8 раз- личных масок, четыре из них приведены на рис. 1г-1ж. Эти направления на- зываются как стороны света: "север", "юг", "восток", "юго–восток" (всего су- ществует 8 масок). 37 Интенсивность выходного элемента изображения будет зависеть от гра- диента изменения яркости (чем больше наклон, тем ярче элемент). Например, градиент "восток" будет усиливать «край», который содержит переход от черного к белому "слева-направо" [5]. Выделение линий Маски, приведенные на рис. 1з – 1к, называются операторами выделения вертикально, горизонтально и наклонно–ориентированных деталей, соответ- ственно. Ранговая фильтрация Особое место среди алгоритмов нелинейной обработки сигналов зани- мают процедуры ранговой фильтрации данных. Ранговой обработкой данных называют преобразование набора отсчетов сигнала в вариационный ряд, в котором отсчеты сигнала расставлены по значимости (возрастанию значений амплитуд). Первый (минимальный) ранг в вариационном ряде чисел занимает отсчет сигнала с минимальной амплитудой. Последний (максимальный) ранг в вариационном ряде чисел занимает отсчет сигнала с максимальной ампли- тудой. Наиболее часто при обработке сигналов используются алгоритмы ме- дианной фильтрации, которые реализуют процедуры вычисления центра ва- риационного ряда [2]. Рассмотрим принцип обработки данных в медианном фильтре на примере. 29 25 29 22 60 27 42 29 27 22 25 27 27 29 29 29 42 60 З на ч ение 29 за меня ет 60 в вы хо д но м изо б р а жении. Е сл и 60 б ы л о зна ч е- нием т о ч ки ш ума , со зд а вш ей б ел о е пят но на исхо д но м изо б р а жении, эт о пят но б уд ет о т ф ил ьт р о ва но . М ед иа нно е ил и ср ед инно е зна ч ение И схо д но е изо б р а жение О кр ужение т о ч ки 3х3 О б р а б а т ы ва ет ся цент р а л ь- на я т о ч ка со зна ч ением 60 Рис. 2. – Работа медианного фильтра 38 2. ЛИНЕЙНАЯ И РАНГОВАЯ ФИЛЬТРАЦИЯ (ЧАСТЬ 1) 2.1. Описание инструментальных программ Имя про- граммы Назначение Синтаксис view Осуществляет просмотр изобра- жений view<имя файла> med Осуществляет ме- дианную фильт- рацию med<имя вх.файла><имя вых.файла> При выполнении этой команды на экране по- являются названия файлов, содержащих ве- совые коэффициенты фильтров. Выберите необходимый файл с расширением *.msk и нажмите fir Осуществляет двумерную ли- нейную свертку fir<имя вх.файла><имя вых.файла> При выполнении этой команды на экране по- являются названия файлов, содержащих ве- совые коэффициенты фильтров. выберите необходимый файл с расширением *.msk и нажмите norm Осуществляет нормировку файла norm<имя файла> add Осуществляет сложение двух изображений add<слаг.1><слаг.2><сумма> sub Вычитает два изо- бражения sub<вычитаемое><вычитатель> <разность> stat Показывает рас- пределение изо- бражения (гистог- рамму),среднек- вадратическое от- клонение, матема- тическое ожида- ние stat<имя файла> cut Осуществляет просмотр осцил- лограмм строк участка изображе- ния cut<имя вх.файла><имя вых.файла> переместите белый квадрат, указанных раз- меров, на соответствующий участок изобра- жения и нажмите кнопку F3. Появятся ос- циллограммы строк выделенного участка изображения. 39 Программа fir выполняет свертку изображения с заданной маской 2 1 i i a согласно выражению , 0 n , 0 n , ) i n , i n ( x a ) n , n ( y 2 1 M 0 i M 0 i 2 2 1 1 i i 2 1 1 1 2 2 2 1 ≥ ≥ − − = ∑ ∑ = = (2) где x(n 1 , n 2 ), y(n 1 , n 2 ) – отсчеты входных и выходных изображений, 2 1 i i a – ве- совые коэффициенты маски размером М1хМ2. Говорят, что маска a i i 1 2 «скользит» по изображению и для каждого положения маски вычисляется выражение (2). Входные отсчеты должны располагаться в файле побайтно, а выходные отсчеты записываются в выходной файл как двухбайтные, чтобы избежать переполнения. Чтобы обеспечить коэффициент фильтра, равный 1, необхо- димо пронормировать все отчеты обработанного изображения на константу, равную сумме выходных коэффициентов маски. В программе MED по изо- бражению так же «скользит» маска и для каждого положения маски вычисля- ется одно значение выходного изображения. При каждом положении маски в отдельный массив копируются отчеты изображения, которым соответствуют ненулевые элементы маски. Затем эти отчеты сортируются в порядке возрас- тания значений (строится вариационный ряд) и в качестве выходного прини- мается значение отчета занявшего центральное (медианное) положение в ва- риационном ряде. 2.2. Исходные данные : – исходное изображение – Lena.dat; – изображение, содержащее импульсный шум – in.dat; – изображение, содержащее нормальный шум – n.dat. Файлы с весовыми коэффициентами фильтров: Имя файла M1.msk M2.msk M3.msk M4.msk M5.msk Весовые коэффици- енты фильт- ра 0 0 0 1 1 1 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Число весо- вых коэф- фициентов 3 5 9 13 16 40 2.3. Алгоритм выполнения работы Ф а йл ш ум а импул./норм . Ф а йл исходного изобра ж ения Ф а йл ш ум а импул./норм . Н ормировка фа йлов Ф ильтр изобра ж . ра нгов .\ линейн. Ра спределение ра зницы (г и стогра м м а ) За ш умленны е изобра ж ения О тфильтрова нны е изобра ж ения О тличие от оригина ла 2.4. Порядок выполнения части 1 работы В менеджере программ, в группе «Приложения», дважды «щелкните» по пиктограмме «LAB3». 2.4.1. Просмотрите исходное изображение, изображение импульсного и нормального шума. Для этого наберите в командной строке: view Lena im n 2.4.2. Создайте два файла изображения, зашумленные импульсным и нормальным шумом. Наберите в командной строке: add Lena im i0 i0.dat – изображение, зашумленное импульсным шумом. Наберите в командной стороке: add Lena n n0 2.4.3. Просмотрите исходное, зашумленное импульсным, нормальным шумом изображения. Наберите в командной строке: view Lena i0 n0 2.4.4. Выполните медианную фильтрацию изображения, зашумленного импульсным шумом. Наберите в командной строке: 41 med i0 ri1 Выберите файл M1.msk и нажмите В каталоге появится файл отфильтрованного изображения – ri1.dat. Аналогичным образом, используя маски М2, М3, М4, М5, получите от- фильтрованные изображения ri2.dat, ri3.dat, ri4.dat, ri5.dat. Для этого наберите в командной строке: med i0 ri2 med i0 ri3 med i0 ri4 med i0 ri5 2.4.5. Посмотрите результаты фильтрации. Для этого наберите в команд- ной строке: view i0 ri?.dat 2.4.6. Выполните медианную фильтрацию изображения, зашумленное нормальным шумом. Процедуру фильтрации осуществите аналогично п.4.4. Наберите в командной строке: med n0 rn1 med n0 rn2 med n0 rn3 med n0 rn4 med n0 rn5 2.4.7. Просмотрите результаты фильтрации. Для этого наберите в ко- мандной строке: view n0 rn?.dat 2.4.8. Выполните линейную фильтрацию изображения с импульсными характеристиками фильтра (М1, М2, М3, М4, М5). Наберите в командной строке: fir i0 Li1 Выберите файл M1.msk и нажмите fir i0 Li2 fir i0 Li3 fir i0 Li4 fir i0 Li5 42 2.4.9. Посмотрите результаты фильтрации. Для этого наберите в команд- ной строке: view i0 Li?.dat 2.4.10. Выполните линейную фильтрацию изображения, зашумленное нормальным шумом. Процедуру фильтрации осуществите аналогично п. 2.4.6. Наберите в командной строке: fir n0 Ln1 fir n0 Ln2 fir n0 Ln3 fir n0 Ln4 fir n0 Ln5 2.4.11. Посмотрите результаты фильтрации. Для этого наберите в ко- мандной строке: view n0 Ln?.dat 2.4.12. Произведите нормировку файлов, полученных после медианной фильтрации. Наберите в командной строке: norm/v r/??.dat При выполнении программы norm появится гистограмма изображения. Для осуществления нормировки нажмите 2.4.13. Произведите нормировку файлов, полученных после линейной фильтрации. Наберите в командной строке: norm/v L?1.dat При выполнении программы norm появится гистограмма изображения. Клавишами <стрелка вверх>,<стрелка вниз> установить коэффициент нор- мировки (1/ratio) равный числу весовых коэффициентов в соответствующей маски фильтра. Так для файлов L?1.dat 1/ratio должен составить 3. Клавиша- ми norm/v L?2.dat norm/v L?3.dat norm/v L?4.dat norm/v L?5.dat Для файлов L?2.dat 1/ratio должен составить 5, для L?3.dat – 9, для L?4.dat – 13, L?5.dat – 16. 2.4.14. Для оценки качества фильтрации необходимо определить на сколько отфильтрованное изображение отличается от исходного. Осуществи- 43 те вычитание исходного изображения из отфильтрованных. Наберите в ко- мандной строке: sub ri1 Lena ris1 sub ri2 Lena ris2 sub ri3 Lena ris3 sub ri4 Lena ris4 sub ri5 Lena ris5 sub rn1 Lena rns1 sub rn2 Lena rns2 sub rn3 Lena rns3 sub rn4 Lena rns4 sub rn5 Lena rns5 sub Li1 Lena Lis1 sub Li2 Lena Lis2 sub Li3 Lena Lis3 sub Li4 Lena Lis4 sub Li5 Lena Lis5 sub Ln1 Lena Lns1 sub Ln2 Lena Lns2 sub Ln3 Lena Lns3 sub Ln4 Lena Lns4 sub Ln5 Lena Lns5 В результате вычитания исходного изображения из отфильтрованного, Вы должны получить 20 файлов, приведенных в табл.1.: Таблица. 1 Тип фильтра и шума Имена файлов Ранговая фильтрация, импульсный шум ris1.dat ris2.dat ris3.dat ris4.dat ris5.dat Ранговая фильтрация, нормальный шум rns1.dat rns2.dat rns3.dat rns4.dat rns5.dat 44 Линейная фильтрация, импульсный шум Lis1.dat Lis2.dat Lis3.dat Lis4.dat Lis5.dat Линейная фильтрация, нормальный шум Lns1.dat Lns2.dat Lns3.dat Lns4.dat Lns5.dat 2.4.15. При помощи программы STAT просмотрите распределения отли- чий от оригинала после линейной и медианной фильтрации. Занесите значе- ния среднеквадратического отклонения (СКО) в таблицу. Для этого наберите в командной строке STAT и через пробел имена файлов. Повторите эту опе- рацию для всех файлов. stat ris1 Lis1 stat ris2 Lis2 stat ris3 Lis3 stat ris4 Lis4 stat ris5 Lis5 stat rns1 Lns1 stat rns2 Lns2 stat rns3 Lns3 stat rns4 Lns4 stat rns5 Lns5 Таблица 2 Тип фильтра и шума Имена файлов Число весовых коэф. фильтров СКО Ранговая фильт- рация, импульсный шум ris1.dat ris2.dat ris3.dat ris4.dat ris5.dat Ранговая фильт- рация, нормальный шум rns1.dat rns2.dat rns3.dat rns4.dat rns5.dat 45 Линейная фильт- рация, импульсный шум Lis1.dat Lis2.dat Lis3.dat Lis4.dat Lis5.dat Линейная фильт- рация, нормальный шум Lns1.dat Lns2.dat Lns3.dat Lns4.dat Lns5.dat 2.4.16. На основе данных табл. 2 постройте четыре графика зависимости СКО то числа весовых коэффициентов для четырех групп файлов. 2.4.17. Сделайте заключение в каких случаях целесообразнее применять линейные фильтры, а в каких ранговые. Объясните поведение построенных четырех графиков. Назовите типы линейных и нелинейных фильтров кроме тех, которые используются в данной лабораторной работе. 3. ОСНОВНЫЕ АЛГОРИТМЫ ОБРАБОТКИ ИЗОБРАЖЕНИЙ (ЧАСТЬ 2) 3.1. Исходные данные : – изображение телевизионной таблицы – tv.dat. Файлы с весовыми коэффициентами фильтров: Таблица. 3 Имя файла lapl.msk lff.msk ddf.msk gradz.msk Весовые коэффициенты фильтра 1 1 1 1 8 1 1 1 1 − − − − − − − − 9 / 1 9 / 1 9 / 1 9 / 1 9 / 1 9 / 1 9 / 1 9 / 1 9 / 1 1 2 1 2 4 2 1 2 1 − − − − 1 1 1 1 2 1 1 1 1 − − − − Имя файла grads.msk gor.msk vert.msk diag.msk Весовые коэффициенты фильтра 1 1 1 1 2 1 1 1 1 − − − − 1 1 1 2 2 2 1 1 1 − − − − − − 1 2 1 1 2 1 1 2 1 − − − − − − 2 1 1 1 2 1 1 1 2 − − − − − − 46 3.2. Порядок выполнения работы 3.2.1. Просмотрите файл исходного изображения tv.dat используя про- грамму view. Наберите в командной строке: view tv.dat 3.2.2. Для просмотра осциллограмм строк изображения необходимо пронормировать файл программой norm. Наберите в командной строке: norm/v tv.dat При выполнении программы norm появится гистограмма изображения. Для осуществления нормировки нажмите 3.2.3. Программой cut просмотрите осциллограммы характерных участ- ков изображения телевизионной таблицы. Наберите в командной строке: cut tv.dat tv0.dat При выполнении программы cut появится контур белого квадрата на изображении. Клавишами 3.2.4. Обработайте исходное изображения масками, приведенные в табл. 3. Обработку осуществите программой |