Функция «край» не поддерживается для автономной генерации кода.

Я пытаюсь использовать метод edge(I,'sobel') внутри функционального блока Matlab в Simulink(MATLAB 2013a). Когда я пытаюсь скомпилировать, я получаю сообщение об ошибке «Функция «край» не поддерживается для автономной генерации кода». Я знаю, что есть блок детектора краев, но я хочу вызвать функцию в функциональном блоке Matlab. Как это обойти.


person ShakHub    schedule 28.10.2013    source источник
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