У меня есть функции в Matlab, которые принимают два аргумента, изображение и ядро, и выполняют различные приложения для обработки изображений. Подпись Gen_Filt (kernel, img) для различных операций фильтрации. Я пытаюсь создать вторую функцию, которая закрывает операцию фильтрации с указанным ядром c, чтобы она могла выполнять определенную операцию с изображениями.
function [closure] =Close_Over(General,kernel)
function[out_img]=inner(img)
out_img=General(kernel,img);
end
closure=@inner;
end
Таким образом, это займет определенный тип операции фильтрации c (подпись Gen_Filt) и конкретное ядро c и вернет обработчик функции с ядром, привязанным к указанной операции фильтрации c. , Тем не менее, он, кажется, вызывает функцию операции фильтрации и выдает следующую ошибку:
Ошибка в Gen_Filt (строка 61)
out_img = conv2 (img, kernel, 'same') ;
, который заставляет меня думать, что он пытается оценить операцию фильтрации Gen_Filt, прежде чем я смогу вызвать обработчик с указанным c аргументом изображения.
Правильно ли я понимаю проблему и / или я ошибаюсь?