Я знаю, что многие люди заинтересованы в техническая разница между IplImage
а также CvMat
, (ДАНЕТ cv::Mat
(*), но CvMat
. Итак, давайте проясним различия с практической направленностью.
Является CvMat
пересчитанная версия IplImage
? Является CvMat
только обертка вокруг IplImage
? Если так, то почему они тоже развились? CvMat
?
Я задавал эти вопросы, потому что Я видел IplImage
являющийся далеко, самым популярным в общем поиске и на мой взгляд, он также имеет больше сообщений.
В чем выгода от использования IplImage? вместо новых структур?
(*) (Я поместил здесь также тег c ++, так как многие люди используют его также с c ++, а некоторые библиотеки предпочитают IplImage
.)
IplImage
пришел из библиотеки Intel Image Processing, в соответствии с документами:
http://opencv.willowgarage.com/documentation/basic_structures.html#iplimage
Этот вопрос также касается CvMat
структура, которая может быть заметна для вас:
Какова структура памяти OpenCV cvMat?
Что касается того, что является более выгодным: в то время как могут быть небольшие различия скорости здесь или там с CvMat
или же IplImage
в разных контекстах — это зависит от того, что вы хотите сделать. Например. вам нужно разделить матричную структуру в памяти? Вам нужно эффективно сериализовать или искать и т. Д.? Приложение имеет значение.
(Теоретически, одно преимущество, предлагаемое IplImage
является то, что из-за его родословной, как правило, он более совместим с существующими реализациями, как вы заметили.)
Я рекомендую вам прочитать абзац Примитивные типы данных OpenCV из книги Обучение OpenCV. Есть большое и хорошее объяснение различия между этими двумя типами данных.
Отвечая на ваш вопрос:
Какая польза от использования IplImage вместо более новых?
структуры?
Возможно нет. Его разработчики почему-то осуждают его, я думаю, причина, по которой вы все еще находите его, заключается в устаревшем коде; потому что люди все еще следуют старым образцам кода, не зная, что структура устарела, и потому что «Изучение OpenCV первое издание«устарел в отношении сигнатур функций opencv и структур данных, но за ним все еще следит множество людей, начинающих с opencv.
Как ссылка, Обучение OpenCV 2-е издание должен выйти в марте 2013 года, но не цитируйте меня;)