| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программное обеспечение > Срочно требуется помощь |
| Автор: Scarabus 5.3.2006, 02:42 |
| Здравствуйте. Так получилось, что с программированием в жизни практически не сталкивался, но вот надо обработать плохого качества изображение разного рода фильтрами в матлабе (в принципе необязательно, но в нете нашел коды именно к нему). Проблема в следующем: при выполнении команд вылетают ошибки и обработки не происходит, нужно что-то подправить. Я этого сделать не могу. Очень надеюсь на вашу помощь. Думаю, у специалиста это займет всего пару минут. Итак, имеем: Использование медианного фильтра для устранения импульсного шума. Одним из эффективных путей устранения импульсных шумов на изображении является применение медианного фильтра. Наиболее эффективным вариантом является реализация в виде скользящей апертуры. for i=1+n1:N+n1; disp(i) for j=1+m1:M+m1; if j==1+m1; D=0; for a=-n1:n1; for b=-m1:m1; D(n1+1+a,m1+1+b)=Lr(i+a,j+b); end; end; end; if j>1+m1; for a=-n1:n1; D(n1+1+a,m+1)=Lr(i+a,j+m1); end; D=D(1:n,2:m+1); end; Lvyh(i,j)=median(D(:)); end; end; Lvyh=Lvyh(n1+1:N+n1, m1+1:M+m1); figure, imshow(Lvyh); Вылетает: ??? Undefined function or variable 'n1'. Пороговый метод подавления шумов. Элементы изображения, которые были искажены шумом, заметно отличаются от соседних элементов. Это свойство легло в основу многих методов подавления шума, наиболее простой из которых, так называемый пороговый метод. При использовании этого метода последовательно проверяют яркости всех элементов изображения. Если яркость данного элемента превышает среднюю яркость локальной окрестности, тогда яркость данного элемента заменяется на среднюю яркость окрестности. for i=1+n1:N+n1; disp(i) for j=1+m1:M+m1; if j==1+m1; D=0; for a=-n1:n1; for b=-m1:m1; D(n1+1+a,m1+1+b)=Lr(i+a,j+b); end; end; end; if j>1+m1; for a=-n1:n1; D(n1+1+a,m+1)=Lr(i+a,j+m1); end; D=D(1:n,2:m+1); end; LS=mean(mean(D)); if abs(Lr(i,j)-LS)>10/255; % Установка порога Lvyh(i,j)=LS; else Lvyh(i,j)=Lr(i,j); end; end; end; Lvyh=Lvyh(n1+1:N+n1,m1+1:M+m1,:); figure, imshow(Lvyh); Вылетает: ??? Undefined function or variable 'n1'. Низкочастотная фильтрация с использованием шумоподавляющих масок. F=(1/10)*[1 1 1; 1 2 1; 1 1 1]; Lvyh=filter2(F,L,'same')/(3*3); figure, imshow(Lvyh); Вылетает: ??? Subscript indices must either be real positive integers or logicals. Заранее огромное спасибо. |
| Автор: maxim1000 5.3.2006, 03:30 |
| перенесено из Алгоритмов... |