Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR3_OOI.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.29 Mб
Скачать

Imshow(255*h), title('Окно фильтра')

H = fft2(h);

SH=abs(H);

SHc= fftshift(SH);

SHlog=log(1+SHc);

figure

Imshow(sHlog, [ ]);

title('Частотная характеристика фильтра');

На рисунках приведен вид окна фильтра (левый рисунок) и его частотной характеристики (правый рисунок). Параметр sigma определяет размер окна фильтра, чем больше sigma, тем больше окно фильтра.

Дискретизация изображения в МАТЛАБ

Ниже приведен пример программы, реализующей процедуру дискретизации изображения. Показано, как изменяется спектр изображения в результате его дискретизации, а также – как восстановить непрерывное изображение по его отсчетам.

Пример:

clear;

close all;

J = imread('cameraman.tif');

sigma=2;

h = fspecial('gaussian', sigma);

g = imfilter(J,h);

figure, imshow(g);

title('Исходное изображение с ограниченным спектром')

F = fft2(g);

S=abs(F);

Fc= fftshift(S);

Slog=log(1+Fc);

figure

Imshow(Slog, [ ]);

title('Спектр исходного изображения');

for i=1:256;

for j=1:256;

D(i,j)=0;

end

end

Dxy=3; %Шаг дискретизации

%Двумерная решетчатая функция с шагом Dxy по обоим координатам

for i=1:256/Dxy;

for j=1:256/Dxy;

D(i*Dxy,j*Dxy)=1;

end

end

%Собственно процедура дискретизации - умножение изображения

%на решетчатую функцию

for i=1:256;

for j=1:256;

f(i,j)=g(i,j)*D(i,j);

end

end

figure

imshow(f);

title('Дискретизованное изображение');

% Находим спектр дискретизованного изображения

FD = fft2(f);

S=abs(FD);

Fc= fftshift(S);

Slog=log(1+Fc);

figure

imshow(Slog, [ ]);

title('Спектр дискретизованного изображения');

sigma2=1.5;

% h - восстанавливающий двумерны ФНЧ

h = fspecial('gaussian', [256 256], sigma2);

H = fft2(h);

SH=abs(H);

SHc= fftshift(SH);

SHlog=log(1+SHc);

figure

imshow(250*h), title('АЧХ восстанавливающего фильтра')

% Процедура восстановления - фильтрация в частотной области

IF=FD.*H;

SIF=abs(IF);

SIFc= fftshift(SIF);

SIFclog=log(1+SIFc);

figure

imshow(SIFclog, [ ]);

title('Спектр на выходе фильтра');

FI = ifft2(IF);

FIAbs=abs(FI);

FIAbsc= fftshift(FIAbs);

figure

imshow(FIAbsc, [ ]);

title('Изображение на выходе восстанавливающего фильтра');

Квантование изображения по уровню

Дискретизация изображения по пространственным координатам является первым шагом перехода от аналогового изображения к цифровому. Второй шаг – это его квантование по уровню, то есть замена точных значений пикселей приближенными, округленными до ближайшего уровня квантования. Процедура квантования позволяет свести число возможных значений пикселя к конечному множеству значений, определяемому числом уровней квантования.

Квантование по уровню приводит к появлению ошибок квантования – разницы между точным и приближенным значением пикселя. На изображении это проявляется в виде характерных искажений, особенно заметных на участкак с плавным изменением яркости (цветов). Ниже приведен пример программы, иллюстрирующий проявление эффектов квантования для черно-белых и цветных изображений.

Пример:

%Квантование изображения

close all;

clear;

%DELTA - шаг квантования, N - число уровней квантования

N=8;

DELTA=round(255/(N-1));

F = imread('cameraman.tif');

figure; imshow(F);

J = DELTA*round(F/DELTA);

figure; imshow(J);

IM = imread('IMA.JPG');

figure; imshow(IM);

J1 = DELTA*round(IM/DELTA);

figure; imshow(J1);

Задание на самостоятельную работу.

1. Считайте из библиотеки MATLAB несколько различных изображений.

2. С использованием функции F = fft2(f) сформируйте и отобразите двумерные спектры изображений. При отображении спектра используйте либо логарифмический масштаб. С использованием функции fftshift приведите нулевую частоту в спектре к центру окна отображения.

  1. С использованием функции ifft2(F) восстановите изображение по его спектру (используйте спектры с нулевой частотой в верхнем левом углу и с нулевой частотой в центре окна). Объясните получаемые в обоих случаях результаты.

  2. С использованием функции fspecial('gaussian') задайте двумерный фильтр с параметрами [M N], sigma в области пространственных переменных. Отобразите в виде изображения вид окна этого фильтра.

  3. Определите вид частотной характеристики данного фильтра. Отобразите АЧХ двумерного фильтра в виде изображения – imshow.

  4. Измените параметр sigma фильтра, и повторите п.п. 5,6. Объясните различия в полученном результате.

  5. Продискретизуйте изображение с шагом Dxy = 1, 2, 3, 4. Отобразите результат.

  6. Определите и отобразите спектр дискретизованного изображения при различных значениях Dxy.

  7. С использованием оконного фильтра, заданного функцией fspecial('gaussian'), выполните фильтрацию изображения в частотной области. Повторите опыт при различном значении параметра фильтра sigma. Объясните полученный результат.

  8. Изучите проявление эффектов квантования на черно-белых и цветных изображениях при различном числе уровней квантования.

  9. Оформите в электронном виде отчет по лабораторному практикуму.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]