qt — вызов Matlab из C ++ с обновленными входами

Я работаю над проектом Qt, который требует от меня работы с общей библиотекой Matlab c ++. Я в основном работаю с изображениями, которые я получаю, и мне нужно будет продолжить их обработку позже.

Мне абсолютно необходимо, чтобы я приобрел Изображения в C Platform, а затем при необходимости вызывал Matlab для обработки. Мои изображения идут с высокой скоростью: около 100 кадров в секунду.

Проблема в том, что всякий раз, когда я вызываю Matlab в цикле, я могу обрабатывать полученные изображения, но не в режиме реального времени. Это занимает одну или две секунды между последующими вызовами в Matlab. Я предполагаю, что это смывает другие изображения и просто создает некоторые изображения.

Можете ли вы предложить мне способ, чтобы я мог просто вызвать функцию Matlab один раз, и мои входные данные будут изменены в режиме реального времени. Я не собираюсь использовать Matlab Engine, потому что для этого потребуется, чтобы Matlab был установлен на каждом компьютере, мой проект запущен.

2

Решение

Вы создаете библиотеку из кода MATLAB с использованием компилятора MATLAB и ожидаете, что сможете вызывать ее 100 раз в секунду?

Этого не произойдет — накладные расходы на вызов библиотеки слишком высоки. Похоже, ваша библиотека также может делать некоторые заговоры, что, вероятно, тоже займет слишком много времени.

Возможно, вы могли бы изучить использование MATLAB Coder для преобразования вашего алгоритма обработки изображений MATLAB в C-код, а затем интегрировать C-код непосредственно в ваш основной код. Большая часть Toolbox Tool Processing Toolder поддерживается MATLAB Coder, как и System Vision System Toolbox и большая часть наборов инструментов, связанных с обработкой сигналов.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]