Я пытаюсь использовать метод edge(I,'sobel') внутри функционального блока Matlab в Simulink(MATLAB 2013a). Когда я пытаюсь скомпилировать, я получаю сообщение об ошибке «Функция «край» не поддерживается для автономной генерации кода». Я знаю, что есть блок детектора краев, но я хочу вызвать функцию в функциональном блоке Matlab. Как это обойти.
Функция «край» не поддерживается для автономной генерации кода.
comment
Я не знаю, что ты собираешься делать. Возможно, Matlab Builder NE - это решение, вывод - это .net DLL.
- person Daniel   schedule 28.10.2013
Ответы (2)
Если у вас есть набор инструментов Система компьютерного зрения, вы можете использовать vision.EdgeDetector
Системный объект. Если у вас есть блок детектора краев, значит, у вас уже есть этот набор инструментов. Этот объект поддерживает генерацию кода. Используемый метод обнаружения границ по умолчанию — «Sobel». Когда вы генерируете код для этого объекта, не забудьте установить все свойства, используя аргументы конструктора. Возможно, вы не сможете изменить свойства после построения при создании кода.
edgeObj = vision.EdgeDetector;
edges = step(edgeObj, inputImage);
person
Navan
schedule
28.10.2013
Вы должны иметь возможность объявить функцию как внешнюю:
coder.extrinsic('край');
тогда он должен работать для моделирования, но не для генерации кода.
person
user2398623
schedule
28.10.2013