Задание. 1. Открыть растровое изображение, преобразовать в класс double
1. Открыть растровое изображение, преобразовать в класс double. 2. Выделить для обработки произвольную строку n изображения. 3. Выполнить построение графика и гистограммы строки n (количество интервалов гистограммы – 10, ширина столбца гистограммы – 0.7; добавить метки по осям Х и У, добавить подписи координатных осей и название гистограммы) (см. лаб.6). 4. Выделить региональную компоненту сигнала – строки n. Для этого обнулить высокочастотные составляющие преобразование Фурье строки n (значения составляющих преобразование Фурье, например, с 11-го по 189-й). 5. Визуализировать вещественную часть сигнала n, полученного после выполнения обратного преобразования Фурье, визуально сравнить с графиком функции строки n. 6. Выделить локальную компоненту сигнала. Для этого обнулить низкочастотные составляющие преобразование Фурье строки n. 7. Визуализировать вещественную часть сигнала n, полученного после выполнения обратного преобразования Фурье. 8. Построить графики амплитудно-частотной и фазо-частотной характеристики сигнала n. График АЧХ представить в логарифмической шкале. 9. Выполнить пункты 4-7 последовательно для всех строк изображения. Визуализировать полученные изображения в диапазоне значений от 0 до 1. 10. Построить гистограмму исходного изображения, изображения с подавленной высокочастотной составляющей и изображения с подавленной низкочастотной составляющей 11. Для произвольной строки произвольного изображения выполнить фильтрацию: Построить график исходной, зашумленной и отфильтрованной строки Код программы: lc; clear; f = imread('1.2.12.jpg'); figure, imshow(mat2gray(im2double(f))); g = f(10,:); t = fft(g); len = length(t); t(10:(len - 10)) = 0; t1 = real(ifft(t)); figure, plot(g), hold on, plot(t1, 'r')
s=double(f(10,:)); figure, Graf = plot(s, '-g', 'MarkerSize', 10); title('График функции строки n'); xlabel('10 строка'); ylabel('Все столбцы'); h = hist(s, 10); figure, bar(h,0.7) title('Гистограмма функции строки n'); xlabel('10 строка'); ylabel('Все столбцы'); Результат:
Рис 3. Гистограмма строки n Рис. 4. График строки n
Визуализировать вещественную часть сигнала n, полученного после выполнения обратного преобразования Фурье. t = fft(g); len = length(t); t(1:10) = 0; t((len - 10):len) = 0; t1 = real(ifft(t)); figure, plot(g), hold on, plot(t1, 'g') Выполнить пункты 4-7 последовательно для всех строк изображения. Визуализировать полученные изображения в диапазоне значений от 0 до 1. for i=1:size(f, 1) g = f(i,:); t = fft(g); len = length(t); t(10:(len - 10)) = 0; t2(i,:) = real(ifft(t)); end; figure, imshow(mat2gray(t2))
for i=1:size(f, 1) g = f(i,:); t = fft(g); len = length(t); t(1:10) = 0; t((len - 10):len) = 0; t3(i,:) = real(ifft(t)); end; figure, imshow(mat2gray(t3))
Построить графики амплитудно-частотной и фазо-частотной характеристики сигнала n. График АЧХ представить в логарифмической шкале. ft = fft(s); U=abs(ft); figure, plot(log(U)) title('Amplityda');
L=angle(ft); figure, plot(L) title('faza'); Рис. 8 График фазо-частотной характеристики сигнала n.
Рис. 9 График амплитудно-частотной характеристики сигнала n. f = imread('1.2.12.jpg'); figure, imshow(mat2gray(im2double(f))); g = f(10,:, 1); lSpeckle = imnoise(l, 'speckle'); t = fft(lSpeckle); len = length(t); t(10:(len - 10)) = 0; t1 = real(ifft(t)); figure, plot(g), hold on, plot(t1, 'r') Рис.10. Фильтрация: Мультипликативный шум
|