Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Gt;>figure

Gt;>figure

>>imshow(img2)

>>title('Filtered Image')

 

дляизображения h = fspecial(‘motion’, 20, 35)

>>img1= imread('imgmot.jpg');

>>imshow(img1)

>>h = fspecial('unsharp', 0.7)

>>img2 = imfilter(img1,h);

>>title('Original Image')

gt;>figure

>>imshow(img2)

>>title('FilteredImage')

 

 
 


Маска фильтра, повышающего резкость изображения, создается следующим образом:

где a - параметр в диапазоне [0,1], передаваемый в функцию fspecial.

5. Исходные изображения, маски и изображения, обработанные по п.п.5.6. Физический смысл процедур roipoly, roifilt2.

 

Программа для изображения h = ones(7,7)/49и h = fspecial(‘motion’, 20, 35):

>>I = imread('imgunsp77.jpg'); / I = imread('imgmot.jpg');

>>Irg = rgb2gray(I);

>>c = [150 500 500 150];

>>r = [150 150 500 500];

> >BW = roipoly(Irg,c,r);

>>H = fspecial('unsharp');

>>J = roifilt2(H,Irg,BW);

>>imshow(Irg)


>>figure, imshow(J), figure, imshow(BW)

 
 

Получение изображения после применения фильтра по области интереса:

BW=roipoly(S, с, r)

Функция BW=roipoly(S) позволяет интерактивно задать область интереса на исходном изображении S любого типа и поместить результат в бинарное изображение BW. Полученное бинарное изображение BW можно использовать в качестве области интереса для функции roifilt2 или для задания положения объектов

Данная функция выводит изображение S в окно и ожидает от пользователя определения области интереса. Если при вызове функции параметр S опущен, то изображение берется из текущего окна. Интересующая область изображения должна быть обведена полигоном, вершины которого задаются однократным нажатием левой клавиши мыши. Предыдущую заданную вершину можно удалить, если нажать на клавиши Backspace или Delete. Нажатие на правую клавишу мыши или двойной щелчок левой клавишей задает последнюю вершину полигона. Также завершить процесс задания вершин без указания последней можно нажатием на клавишу Enter.

 

Изображения BW и S имеют одинаковый размер. Пикселю бинарного изображения BW(r, с) присваивается значение 1, если пиксель S(r, с) находится внутри полигона. В противном случае BW(r, с) равно 0. Для определения точек, лежащих внутри полигона, используется правило Non-Zero Winding.

Функция BW=roipoly(S, с, r) позволяет явно задать координаты вершин полигона, ограничивающего область интереса, в векторах r (номера строк) и с (номера столбцов) одинаковой длины.

Если функцию roipoly вызвать без выходных параметров, то результирующее бинарное изображение выводится на экран в новом окне. В любой из рассмотренных функций можно заменить параметр S (исходное изображение) на два параметра m и n, которые определяют размер исходного изображения. Например, если вызвать функцию BW=roipoly(100, 200), то на экран будет выведено черное изображение в 100 строк и 200 столбцов и функция будет ожидать от пользователя интерактивного задания вершин полигона. Результирующее изображение BW имеет формат представления данных uint8.

 

Id=roifilt2(h, ls, BW)

Функция roifilt2 предназначена для фильтрации отдельных фрагментов полутоновых изображений. Эти фрагменты – области интереса (regions of interest) - задаются с помощью бинарного изображения BW. Размеры BW и исходного полутонового изображения Is должны совпадать. Единичные значения в BW указывают на то, что пиксели исходного изображения с такими же координатами принадлежат области интереса. Таким образом, если BW(r, с) равно 1, то Id(r, с) равно значению пикселя с координатами (r, с), полученного в результате фильтрации исходного изображения Is. Если BW(r, с) равно 0, то Id(r, с) равно Is(r, с), т. е. изменение изображения происходит только в областях интереса.

 

Функция Id=roifilt2(h, Is, BW) создает изображение Id как результат фильтрации областей интереса BW исходного изображения Is линейным фильтром с маской h. Для фильтрации функция roifilt2 вызывает функцию filter2. Результирующее изображение Id имеет формат представления данных double.

 

 

Функция Id =roifilt2(Is, BW, fun) создает изображение Id как результат фильтрации областей интереса BW исходного изображения Is с помощью функции fun. Существует 3 варианта задания параметра fun. Они приведены в таблице в описании функции blkproc. Именем X должно быть обозначено обрабатываемое полутоновое изображение Is. Возвращаемое функцией fun результирующее изображение у должно иметь размеры, равные размерам изображения X.

 

 

Функция Id=roifilt2(Is, BW, fun, PI, P2,..) формирует изображение Id, передавая в функцию fun дополнительные параметры PI, P2.

 

 

6. Изображения с выделенными контурами при различных порогах с использованием процедур Собеля и Превита. Физические основ фильтров Собеля и Превита.

 

Программа для изображения:

 

 

>>I = imread('img1R2G.jpg');

>>irg = rgb2gray(I);

>>BW1 = edge(irg,'prewitt', 0.05);

>>BW2 = edge(irg,'canny', 0.2);

>>BW3 = edge(irg,'sobel', 0.1);

>>imshow(BW1);

>>figure, imshow(BW2)

>>figure, imshow(BW3)

 

 
 


Функция BW=edge(I, 'sobel', thresh) для определения границ использует фильтрацию исходного изображения I фильтром Собеля [1, 3]; пиксель считается относящимся к границе, если соответствующий ему пиксель результата фильтрации имеет значение, большее thresh. Для данного метода можно указать дополнительный параметр direction: BW=edge(I, 'sobel', thresh, direction), который определяет, какие границы будут обнаруживаться.

Оператор использует ядра 3×3, с которыми сворачивают исходное изображение для вычисления приближенных значений производных по горизонтали и по вертикали. Пусть A исходное изображение, а G x и G y — два изображения, где каждая точка содержит приближенные производные по x и по y. Они вычисляются следующим образом:

где обозначает двумерную операцию свертки.

Координата x здесь возрастает «направо», а y — «вниз». В каждой точке изображения приближенное значение величины градиента можно вычислить, используя полученные приближенные значения производных:

(имеется в виду поэлементно)

Используя эту информацию, мы также можем вычислить направление градиента:

где, к примеру, угол Θ равен нулю для вертикальной границы, у которой тёмная сторона слева.

Функция BW=edge(I, 'canny', thresh) использует для определения границ метод Канни. Это достаточно сложный метод, состоящий из большого числа этапов [4]. Суть метода состоит в поиске локальных участков с перепадами яркости. Перепады яркости ищутся с помощью фильтрации по каждой из осей одномерным фильтром лапласиан–гауссиана (см. функцию fspecial). В методе Канни для классификации перепадов на "слабые" и "сильные" используется два порога - нижний и верхний. "Слабые" границы отмечаются в результирующем изображении, только если они соединены с "сильными". Для зашумленных изображений данный метод обеспечивает наилучшее обнаружение границ по сравнению с остальными методами функции edge, но требует существенно большего времени.

Сглаживание. Размытие изображения для удаления шума. Оператор Кэнни использует фильтр который может быть хорошо приближен к первой производной гауссианы. = 1.4:

Поиск градиентов. Границы отмечаются там, где градиент изображения приобретает максимальное значение. Они могут иметь различное направление, поэтому алгоритм Кэнни использует четыре фильтра для обнаружения горизонтальных, вертикальных и диагональных ребер в размытом изображении.

Угол направления вектора градиента округляется и может принимать такие значения: 0, 45, 90, 135.

Функция BW=edge(I, 'prewitt', thresh) для определения границ использует фильтрацию исходного изображения I фильтром Превита [1,3]; пиксель считается относящимся к границе, если соответствующий ему пиксель результата фильтрации имеет значение, большее thresh. Для данного метода можно указать дополнительный параметр direction: BW=edge(I, 'prewitt', thresh, direction), который определяет, какие границы будут обнаруживаться. Возможные значения параметра direction описаны выше.

Оператор использует два ядра 3×3, свёртывая исходное изображение для вычисления приближённых значений производных: одно по горизонтали и одно по вертикали. Положим исходным изображением, и , — двумя изображениями, в которых каждая точка содержит горизонтальное и вертикальное приближение производной, которая рассчитывается как

 

7. 3-х мерные спектры ДПФ и ДКП для своего изображения. Сравнительный анализ полученных результатов.

8.

Программа для изображенияпри ДПФ и ДКП:

 

>>Y = imread('images2.jpg');

>>I = rgb2gray(Y);


<== предыдущая | следующая ==>
Короткі теоретичні відомості. до лабораторної роботи №10 з курсу | Основні теоретичні відомості

Date: 2015-07-22; view: 382; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию