Подтвердить что ты не робот

Библиотеки обработки изображений

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

После использования библиотеки Python PIL и горько понял, что у нее есть встроенные, только ядра фильтров 3x3 и 5x5, я решил спросите здесь, если кто-то знает хорошие библиотеки обработки изображений.

Каковы существующие библиотеки обработки изображений (любой язык)? Являются ли они быстрыми/зрелыми/все еще на ранней стадии?

4b9b3361

Ответ 1

Проверьте python Scipy library. Это библиотека быстрых n-мерных массивов с открытым исходным кодом в python. Он имеет все основные средства обработки изображений:

В нем нет более продвинутых функций Matlab Image Processing Toolbox. Однако, как предположил Вереб, многие из них можно найти в ITK (также доступны в аромате питона).

Как и вы, я хотел уйти от matlab на динамический язык, например python. И, как и вы, я был разочарован PIL, когда понял, что это просто ImageMagick на питоне. Вам все равно нужно использовать PIL для чтения/записи изображений.

Чтобы получить опыт обработки изображений, подобный Matlab, с помощью python получите Numpy/Scipy, Matplotlib и Spyder. Все это и многое другое удобно упаковано в Python (X, Y) только для окон.

Ответ 2

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

JAI (Java Advanced Imaging) является быстрым и очень зрелым, а также объектно-ориентированным. Возможно, потребуется немного разогреть эту библиотеку. Но мощный и управляемый.

Если вы планируете сделать некоторые академические исследования или прототипы для OpenCV, если ваша цель - разработать коммерческое или крупномасштабное программное обеспечение, я рекомендую JAI.

UPDATE

OpenCV теперь имеет API С++ и Python. Я использую OpenCV С++ уже 3 недели, API лучше, чем C API. OpenCV более стабилен, и сообщество выросло. И есть много готовых к использованию передовых алгоритмов в OpenCV. Это стоит рассмотреть.

Ответ 3

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

Ответ 4

Примитивы производительности Intel очень быстрые и очень зрелые. Большая часть функциональности является низкоуровневой, начиная от линейных фильтров, арифметических операций, БПФ, всплесков, геометрических преобразований (...), но также содержит несколько высокоуровневых алгоритмов, например. для рисования или сегментации. Это очень быстро и хорошо документировано. Я бы определенно рекомендовал его для коммерческой разработки (не уверен, есть ли лицензии с открытым исходным кодом).

Ответ 5

Насколько я знаю, ITK используется для медицинской визуализации:
http://www.itk.org

Ответ 6

OpenCV имеет привязки python http://opencv.willowgarage.com - как упоминалось в Vereb, ITK также занимает высшую ступень.

Ответ 7

Как уже упоминалось, вы можете использовать ITK, который можно использовать с VTK в качестве инструментария визуализации. Единственная проблема, которую вы обнаружите, - это не очень легко собрать, если вы собираетесь использовать свои оболочки python (и еще труднее, если попытаться создать сторонний проект openIT projectITK).

Но вы можете использовать python (x, y), который поставляется со всеми этими инструментами (и намного больше), запущенными из коробки и в python: http://www.pythonxy.com

Надеюсь, что это поможет.

Ответ 8

Самая быстрая и профессиональная библиотека обработки изображений (и полный SDK) - это HALCON. (www.mvtec.com) Это не открытый исходный код, но полностью поддерживает С#, С++, C, VB.Net и т.д.