Преобразование кода MATLAB в профессиональное программное обеспечение - PullRequest
3 голосов
/ 12 января 2010

Я работаю в MATLAB, чтобы написать программное обеспечение для обработки / визуализации медицинских изображений, которое интенсивно использует инструментарий обработки изображений MATLAB. Мой выбор использования MATLAB был в значительной степени основан на доступности и моем удобстве в нем, и моя первоначальная цель состояла в том, чтобы завершить мой алгоритм и протестировать его. Я в значительной степени проигнорировал часть GUI - поэтому у меня есть программное обеспечение, которое работает, но с очень неуклюжим GUI (текстовые поля для ввода чисел для большинства операций).

Теперь я думаю о переходе с MATLAB на C / C ++ / Tcl / other, но я не уверен, какая платформа лучше? Мне нужно преобразовать это в очень быстрый автономный исполняемый файл - не может работать сначала с установкой MCR, а затем с использованием exe, как в MATLAB. Я видел некоторые предложения в других постах - об использовании комбинации python / c ++.

Я также ищу помощи от других людей, которые могут помочь мне конвертировать мой демонстрационный код в профессиональное программное обеспечение. Как я могу наилучшим образом оценить временные рамки, которые потребуются опытному программисту для написания графического интерфейса и вставки логического кода? Используя MATLAB GUIDE, я могу написать это за пару часов со всеми базовыми функциями, но я надеюсь, что это программное обеспечение станет действительно привлекательным. У меня уже есть подробный список функций и макет, так что итераций не будет слишком много.

Кроме того, существует ли категория программистов, таких как промышленные дизайнеры, которые могут помочь в разработке графического интерфейса? Я не творческий человек, и мой код / ​​GUI отражает это. Я не просто ищу кого-то, кто помог бы с цветом фона, символами инструментов и т. Д., Но также чтобы помочь с тем, как пользователь может захотеть использовать определенные функции.

Я знаю, что задаю слишком много вопросов, и я ценю ваше время.

Ответы [ 3 ]

4 голосов
/ 12 января 2010

К вашему сведению, любой графический интерфейс, который вы можете создать с помощью Java Swing, изначально доступен в собственно Matlab. Взгляните на мои материалы на File Exchange или http://UndocumentedMatlab.com для примеров. Это позволяет вам программировать привлекательный графический интерфейс Java без необходимости изучать или программировать на Java - вы можете делать все это из кода Matlab. Вы можете проконсультироваться со специалистом по графическому интерфейсу, чтобы он выглядел профессионально, но вы можете легко запрограммировать графический интерфейс самостоятельно. Если вы скомпилируете и развернете, он будет работать без проблем на других платформах (Windows, Linux, ...), поскольку Java является кроссплатформенной. Как медицинская программа, она может иметь дополнительное преимущество, заключающееся в том, что она не требует повторной отправки в FDA, поскольку для развертывания используется тот же вычислительный механизм Matlab, что и для разработки.

Компилятор Matlab НЕ увеличит вашу производительность, поскольку он использует тот же вычислительный движок, что и версия для разработки. Итак, если производительность действительно является проблемой для вас, вы должны попытаться профилировать и оптимизировать «горячие точки» производительности в Matlab. Если это не удастся, вам действительно может понадобиться преобразовать ваше приложение в C / C ++, но я бы действительно сделал это в крайнем случае - это может стоить немало денег, времени, точности и разочарований.

3 голосов
/ 12 января 2010

Попробуйте команду deploytool в Matlab и немного поэкспериментируйте.

Я недавно сделал что-то подобное. Интерфейс был сделан на Java, но основные вычисления были выполнены MCR. Самый первый запуск был немного более продолжительным - он должен был распаковать программу - но потом он был невероятно быстрым.

Я также пробовал это с моделью Simulink, связанной с интерфейсом GUIDE. Это было быстрее, чем сами Matlab / Simulink.

Лично я считаю, что стоит установить MCR, если у вас уже есть готовые алгоритмы. Переписать всегда проблематично: вам придется снова тестировать и отлаживать, и результаты могут не совпадать. Так что может быть проще, если кто-то сделает только пользовательский интерфейс и свяжет его с программой Matlab.

Да, есть специалисты по графическому интерфейсу. Если вы используете стратегию MCR, вам просто нужно позволить им сделать свою магию.

Что касается времени ... это зависит от сложности вашего программного обеспечения и количества приятных глаз, которые вы хотите добавить, но позвольте хотя бы пару месяцев иметь что-то стоящее после написания спецификации, особенно если должен объяснить кому-то еще детали.

1 голос
/ 12 января 2010

В зависимости от версии Matlab, вы можете скомпилировать свой код Matlab в сборку .Net и объединить его с красивым .NET Forms или WPF GUI - это должно быть приятно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...