клк;
clear all; close all; a=imread('cameraman.tif'); figure(1),imshow(a),title('origanal image'); b=imnoise(a,'salt & pepper',.02) figure(2),imshow(b),title('noisy image'); Smax=9; for i=1:254 for j=1:254 n=b(i:i+2,j:j+2) Zmin=min(n(:)); Zmax=max(n(:)); Zmed=median(n(:)); sx=3; sy=3; A1=Zmed-Zmin; A2=Zmed-Zmax; if (A1>0) && (A2<0) B1 = Zxy-Zmin; B2 = Zxy-Zmax; if (B1>0) && (B2<0) b(i:i+2,j:j+2) = n(i, j); break; else b(i:i+2,j:j+2) = Zmed; break; end else sx=sx+2; sy=sy+2; if (sx > Smax) && (sy > Smax) b(i:i+2,j:j+2) = n(i, j); end end end end figure(3),imshow(b),title('denoised image');
Я пытаюсь реализовать следующий алгоритм, но где выше pro. ошибся не могу найти..
пожалуйста, помогите мне…….
Адаптивный медианный фильтр изменяет размер Sxy (размер окрестности) в процессе работы.
? Notation Zmin = minimum gray level value in Sxy Zmax = maximum gray level value in Sxy Zmed = median of gray levels in Sxy Zxy = gray level at coordinates (x, y) Smax = maximum allowed size of Sxy ? Algorithm Level A: A1 = Zmed - Zmin A2 = Zmed - Zmax if A1 > 0 AND A2 < 0, go to level B else increase the window size if window size < Smax, repeat level A else output Zxy Level B: B1 = Zxy - Zmin B2 = Zxy - Zmax if B1 > 0 AND B2 < 0, output Zxy else output Zmed
ПРИМЕЧАНИЕ.
Matlabsolutions.com предоставляет последнюю Помощь по домашним заданиям MatLab, Помощь по заданию MatLab для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech ,ME,M.Tech, к.т.н. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.
Вам нужно взять содержимое блока «если» и сделать его функцией, которая принимает центральное положение и размер окна в качестве входных аргументов. Затем в блоке else нужно увеличить размер окна и вызвать функцию. Что-то вроде
% Determine window size. if (A1>0) && (A2<0) windowSize = standardSize; % 3 or whatever
СМОТРИТЕ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ