2013-05-24 4 views
1

Я действительно не знаю, что использовать для следующих проектов: IplImage? или Cv :: Mat?Что использовать: Ipl? или мат?

Зная, что я хочу:

  • лучше производительность
  • значительного отклик скорости относительно различных инструментов для использования (умножения мата, различных вычислений/инструментов обработки изображений ...)
  • меньше использования от воспоминаний

Если да, то я должен изменить все свои предыдущие IplImages на cv :: Mat?

ответ

6

Ни один из них не является более быстрым или легким, чем другой. По крайней мере, любым измеримым способом. (возможно, cv :: Mat имеет на 4 байта больше, чем IplImage, что не повредит по сравнению с 12.000.000 байтами, которые вам нужны для хранения данных изображения в нем)

Ни один из них не предлагает более быстрых вычислений и больше инструментов для его обработки.

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

Но cv :: Mat (и остальная часть интерфейса C++) проще и безопаснее использовать. Вы пишете меньше кода за меньшее время. У вас меньше ошибок для исправления. Это позволяет сосредоточиться на улучшении ваших алгоритмов как на скорости, так и на потреблении памяти.

И для этого факта да, cv :: Mat намного быстрее и легче - если вы положите его на хорошее использование.

Кроме того, проверить это похоже один OpenCV: C++ and C performance comparison

+3

Я бы сказал, что если плакат будет на C++, он также использует API C++ и, следовательно, сохраняет его/сама некоторые проблемы в будущем, и поэтому следует выбрать резюме :: Мат. Производительность мудрая, на самом деле это не так, как вы говорите. – hetepeperfan

Смежные вопросы