Применение функции imfilter при различных значениях параметров
Заданное изображение:
f=imread('img2.jpeg');
f1 = im2double(f);
A = rgb2gray(f1);
subplot(2,3,1), imshow(A, [ ]), title('Оригинальное изображение')
w=ones(10);
B = imfilter(A, w);
subplot(2,3,2), imshow(B, [ ]), title('imfilter(A, w)')
C = imfilter(A, w, 'symmetric');
subplot(2,3,3), imshow(C, [ ]), title('imfilter(A, w, ''symmetric'')')
D = imfilter(A, w, 'replicate');
subplot(2,3,4), imshow(D, [ ]), title('imfilter(A, w, ''replicate'')')
E = imfilter(A, w, 'circular');
subplot(2,3,5), imshow(E, [ ]), title('imfilter(A, w, ''circular'')')
F = imfilter(f, w);
subplot(2,3,6), imshow(F, [ ]), title('Фильтрация оригинального изображения в формате uint8')
Применение функции imfilter при различных значениях параметров
Заданное изображение:
1) Прямоугольный усредняющий фильтр
f=imread('noisy.jpg');
f1 = im2double(f);
A = rgb2gray(f1);
subplot(1,3,1), imshow(A, [ ]), title('Оригинальное изображение')
B = imfilter(A, fspecial('average', 3));
subplot(1,3,2), imshow(B, [ ]), title('fspecial(''average'', 3)')
C = imfilter(A, fspecial('disk', 3));
subplot(1,3,3), imshow(C, [ ]), title('fspecial(''disk'', 5)')
2) Низкочастотный гауссов фильтр
f=imread('noisy.jpg');
f1 = im2double(f);
A = rgb2gray(f1);
D = imfilter(A, fspecial('gaussian', 10, 0.9));
subplot(1,2,1), imshow(D, [ ]), title('fspecial(''gaussian'', 10, 0.9)')
E = imfilter(A, fspecial('gaussian', 10, 0.3));
subplot(1,2,2), imshow(E, [ ]), title('fspecial(''gaussian'', 10, 0.3)')
3) Фильтр Лапласа
f=imread('noisy.jpg');
f1 = im2double(f);
A = rgb2gray(f1);
subplot(1,4,1), imshow(A, [ ]), title('Оригинал')
F = imfilter(f, fspecial('laplacian', 1));
subplot(1,4,2), imshow(F, [ ]), title('fspecial(''laplacian'', 1) %uint8')
F = imfilter(A, fspecial('laplacian', 1));
subplot(1,4,3), imshow(F, [ ]), title('fspecial(''laplacian'', 1) %double')
F2 = A - F;
subplot(1,4,4), imshow(F2, [ ]), title('Разность изображений')
4) Лаплас от гауссова фильтра
f=imread('noisy.jpg');
f1 = im2double(f);
A = rgb2gray(f1);
subplot(1,3,1), imshow(A, [ ]), title('Оригинал')
C = imfilter(A, fspecial('log', 7, 0.3));
subplot(1,3,2), imshow(C, [ ]), title('fspecial(''log'', 7, 0.3)')
F2 = A - C;
subplot(1,3,3), imshow(F2, [ ]), title('Разность изображений')
5) Линейное перемещение
f=imread('noisy.jpg');
f1 = im2double(f);
A = rgb2gray(f1);
subplot(1,2,1), imshow(A, [ ]), title('Оригинал')
|
C = imfilter(A, fspecial('motion', 13, 45));
subplot(1,2,2), imshow(C, [ ]), title('fspecial(''motion'', 13, 45)')
6) Фильтр Превитта и фильтр Собела
f=imread('noisy.jpg');
f1 = im2double(f);
A = rgb2gray(f1);
B = imfilter(A, fspecial('prewitt'));
subplot(2,2,1), imshow(B, [ ]), title('Выделение горизонтальных контуров %prewitt')
C = imfilter(A, fspecial('prewitt')');
subplot(2,2,2), imshow(C, [ ]), title('Выделение вертикальных контуров %prewitt')
D = imfilter(A, fspecial('sobel'));
subplot(2,2,3), imshow(D, [ ]), title('Выделение горизонтальных контуров %sobel')
E = imfilter(A, fspecial('sobel')');
subplot(2,2,4), imshow(E, [ ]), title('Выделение вертикальных контуров %sobel')
7) Повышение резкости изображения
f=imread('noisy.jpg');
f1 = im2double(f);
A = rgb2gray(f1);
w=ones(4);
B = imfilter(A, w);
subplot(1,2,1), imshow(B, [ ]), title('Оригинал')
C = imfilter(B, fspecial('unsharp', 0.3));
subplot(1,2,2), imshow(C, [ ]), title('fspecial(''unsharp'', 0.3)')
2. Сформировать геометрическую фигуру черного цвета заданной формы
и размера. Создать аналогичные фигуры в количестве, не менее заданного, изме-
няя их размер с учетом заданного масштаба. Размеры букв и цифр выбрать со-
измеримыми размерами геометрических фигур. Расположить полученные фигу-
ры в виде единого изображения, фоном для которого выбрать характерный фраг-
мент основного изображения. По отношению к полученному изображению вы-
полнить фильтрацию функцией fspecial при различных фильтрах и их парамет-
ров. Обоснованно пояснить результаты преобразований, используя матричное
представление исходного и результирующих изображений.
Полученное изображение: