2013-12-01 3 views
-1

Я пытаюсь реализовать алгоритм обнаружения canny edge в Matlab. он отлично работает, когда я использую matlab в созданном изображении cameraman.tif, но он дает ошибку, когда я использую другое изображение и окно командной строки:реализовать алгоритм обнаружения canny edge в matlab

Индекс превышает размеры матрицы.

Ошибка в canny_edge (строка 45)

  sum = sum + (ID(u+i, v+j) * filter(i+3, j+3)); 

error

весь код MATLAB размещен на link я новичок в MATLAB. я пытаюсь реализовать алгоритм для назначения колледжа

+0

Пожалуйста капитализировать на именах наименее людей –

ответ

1
%figure,imshow(filter); 
for u = 3 : r 
    for v = 3 : c 
     sum = 0; 
     for i = -2 : 2 
      for j = -2 : 2 
       sum = sum + (ID(u+i, v+j) * filter(i+3, j+3)); 
      end 
     end 
     IDx(u,v) = sum; 
    end 
end 
+0

благодаря Даниель R, но теперь показывает три последовательных края обнаружения изображения показаны http://i.imgur.com/i2KRxUT.jpg?1 как Я обращаюсь к этому – GiLL

+0

Похоже, ваше изображение имеет 3 цветовых канала, ваш код, кажется, только для оттенков серого. – Daniel

+0

но изображение черно-белое – GiLL

Смежные вопросы