Импортировать ITK/VTK в Matlab или Matlab в среду VTK/ITK?

Код не должен «отказываться» от компиляции, если у вас нет -Werror. Если у вас включены предупреждения, он может сказать вам:

предупреждение: предложить скобки вокруг назначения, используемого в качестве значения истинности [-Wparentheses] while (*dest++ = *src++)

В частности, Документы GCC говорят это о целях предупреждения:

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

5
задан DarenW 25 July 2009 в 00:53
поделиться

4 ответа

VTK поставляется с привязками Python ( одно описание ). Я предполагаю, что ITK тоже. Если у вас еще нет большого количества кода в Matlab, я предполагаю, что вам было бы намного проще интегрировать VTK / ITK с python numpy, matplotlib и т. Д.

EDIT:

На мой взгляд , нетривиальные MEX-функции сложно писать. Зачастую компромисс может заключаться в написании новых MEX-функций для каждой задачи или необходимости дополнительного времени для написания большого количества интерфейсного кода.

В зависимости от того, что вы делаете, scipy (набор пакетов python, включая matplotlib, numpy и т.д.) делает многое из того, что делает Matlab. Есть тонкие различия и различные компромиссы. Автоматическая трансляция невероятно полезна, если вы освоите ее. MathWorks недавно добавил BSXFUN, но он автоматически с numpy. Если вы много работаете с разреженными матрицами или вызываете множество более сложных функций линейной алгебры, проверьте numpy docs, чтобы узнать, существует ли то, что вам нужно.

В зависимости от того, что вы сделали с вашей средой. пока что я предлагаю опробовать подход Python в течение нескольких недель. Посмотрите, достаточно ли его возможностей построения графиков и математических функций для ваших нужд. Ожидайте, что поначалу немного ударитесь головой об стену, потому что документация не такая зрелая, как у Matlab.

) делает многое из того, что делает Matlab. Есть тонкие различия и различные компромиссы. Автоматическая трансляция невероятно полезна, если вы освоите ее. MathWorks недавно добавил BSXFUN, но он автоматически с numpy. Если вы много работаете с разреженными матрицами или вызываете множество более сложных функций линейной алгебры, проверьте numpy docs, чтобы узнать, существует ли то, что вам нужно.

В зависимости от того, что вы сделали с вашей средой. пока что я предлагаю опробовать подход Python в течение нескольких недель. Посмотрите, достаточно ли его возможностей построения графиков и математических функций для ваших нужд. Ожидайте, что поначалу немного ударитесь головой об стену, потому что документация не такая зрелая, как у Matlab.

) делает многое из того, что делает Matlab. Есть тонкие различия и различные компромиссы. Автоматическая трансляция невероятно полезна, если вы освоите ее. MathWorks недавно добавил BSXFUN, но он автоматически с numpy. Если вы много работаете с разреженными матрицами или вызываете множество более сложных функций линейной алгебры, проверьте numpy docs, чтобы узнать, существует ли то, что вам нужно.

В зависимости от того, что вы сделали с вашей средой. пока что я предлагаю опробовать подход Python в течение нескольких недель. Посмотрите, достаточно ли его возможностей построения графиков и математических функций для ваших нужд. Ожидайте, что поначалу немного ударитесь головой об стену, потому что документация не такая зрелая, как у Matlab.

Автоматическая трансляция невероятно полезна, если вы освоите ее. MathWorks недавно добавил BSXFUN, но он автоматически с numpy. Если вы много работаете с разреженными матрицами или вызываете множество более сложных функций линейной алгебры, проверьте numpy docs, чтобы узнать, существует ли то, что вам нужно.

В зависимости от того, что вы сделали с вашей средой. пока что я предлагаю опробовать подход Python в течение нескольких недель. Посмотрите, достаточно ли его возможностей построения графиков и математических функций для ваших нужд. Ожидайте, что поначалу немного ударитесь головой об стену, потому что документация не такая зрелая, как у Matlab.

Автоматическая трансляция невероятно полезна, если вы освоите ее. MathWorks недавно добавил BSXFUN, но он автоматически с numpy. Если вы много работаете с разреженными матрицами или вызываете множество более сложных функций линейной алгебры, проверьте numpy docs, чтобы узнать, существует ли то, что вам нужно.

В зависимости от того, что вы сделали с вашей средой. пока что я предлагаю опробовать подход Python в течение нескольких недель. Посмотрите, достаточно ли его возможностей построения графиков и математических функций для ваших нужд. Ожидайте, что поначалу немного ударитесь головой об стену, потому что документация не такая зрелая, как у Matlab.

Если вы много работаете с разреженными матрицами или вызываете множество более сложных функций линейной алгебры, проверьте numpy docs, чтобы увидеть, существует ли то, что вам нужно.

В зависимости от того, что вы сделали со своей средой до сих пор, Я предлагаю опробовать подход Python в течение нескольких недель. Посмотрите, достаточно ли его возможностей построения графиков и математических функций для ваших нужд. Ожидайте, что поначалу немного ударитесь головой об стену, потому что документация не такая зрелая, как у Matlab.

Если вы много работаете с разреженными матрицами или вызываете множество более сложных функций линейной алгебры, проверьте numpy docs, чтобы увидеть, существует ли то, что вам нужно.

В зависимости от того, что вы сделали со своей средой до сих пор, Я предлагаю опробовать подход Python в течение нескольких недель. Посмотрите, достаточно ли его возможностей построения графиков и математических функций для ваших нужд. Ожидайте, что поначалу немного ударитесь головой об стену, потому что документация не такая зрелая, как у Matlab.

Посмотрите, достаточно ли его возможностей построения графиков и математических функций для ваших нужд. Ожидайте, что поначалу немного ударитесь головой об стену, потому что документация не такая зрелая, как у Matlab.

Посмотрите, достаточно ли его возможностей построения графиков и математических функций для ваших нужд. Ожидайте, что поначалу немного ударитесь головой об стену, потому что документация не такая зрелая, как у Matlab.

2
ответ дан 14 December 2019 в 08:59
поделиться

Мне потребовалось некоторое время, чтобы протестировать обе версии, но я пришел к выводу по этому поводу:

Я решил использовать python в сочетании с numpy / scipy и matplotlib. Есть только одна основная причина, почему я решил использовать это. Когда вы импортируете itk и vtk в Matlab, вы должны использовать функции Mex для программирования вашего кода C. Эти файлы mex находятся в подпрограмме следующим образом:

alt text http://www.bastijn.nl/zooi/ подпрограмма.png

Теперь, когда процедура доходит до места, где находится файл mex, она передает управление этому файлу mex и запускает его как функцию , файл mex похож на черный ящик . После того, как файл Mex сделал свое дело, он возвращает управление Matlab, и процедура продолжается. Но вы не можете выполнять какие-либо операции с Matlab, пока файл Mex запускается или получает доступ к переменным в этом файле mex из Matlab. Таким образом, невозможно запустить некоторый код itk / vtk, обратите внимание, что он не работает, и измените некоторые из переменных, используемых в файле mex (созданном там, но они также умрут там, потому что черный ящик возвращает только ваш результат) для тестирование скорости, что работает. Вам нужно снова запустить всю функцию mex.

Это серьезный недостаток, так как вам нужно повторно запустить полный файл mex (функция C) для всех небольших изменений. Сейчас заняты исправлением этого серьезного недостатка, но поскольку они еще не готовы и они мне нужны сейчас, я решил отправиться в тур по питону.

Это серьезный недостаток, так как вам нужно повторно запустить полный mex-файл (функция C) для всех небольших изменений. Сейчас заняты исправлением этого серьезного недостатка, но поскольку они еще не готовы и они мне нужны сейчас, я решил отправиться в тур по питону.

Это серьезный недостаток, так как вам нужно повторно запустить полный mex-файл (функция C) для всех небольших изменений. Сейчас заняты исправлением этого серьезного недостатка, но поскольку они еще не готовы и они мне нужны сейчас, я решил отправиться в тур по питону.

1
ответ дан 14 December 2019 в 08:59
поделиться

Это может помочь: mlabwrap - довольно сложный способ вызова Matlab из формы Python. http://mlabwrap.sourceforge.net/

2
ответ дан 14 December 2019 в 08:59
поделиться

Бастджин, вы сделали правильный выбор: правила Python!

Дополнительная информация:

Для варианта № 1 я написал следующее: http://github.com/thewtex/matlab-itk-import Но, как вы упомянули, это худший вариант.

Вот несколько ссылок для варианта номер 2: mlab Mayavi2 имеет прекрасную возможность переключаться между VTK и numpy.

WrapITK позволяет вам писать конвейеры ITK на Python, и вы можете перемещаться вперед и назад с Numpy с помощью внешнего проекта PyBuffer, найденного там.

1
ответ дан 14 December 2019 в 08:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: