Быстрые кроссплатформенные библиотеки обработки изображений C/C++

Какие есть кроссплатформенные и высокопроизводительные библиотеки изображений для обработки изображений (изменение размера и поиск гистограмм цвета / оттенка). Нет необходимости в графическом интерфейсе. Это для C/C++.

До сих пор я смотрел в

  • OpenCV
  • GIL как часть Boost
  • DevIL
  • CImg

Мои вопросы

  • Как производительность тех, что я перечислил выше?
  • Какие еще библиотеки

Ваш вклад высоко ценится.

11 ответов

Решение

OpenCV имеет довольно хорошую производительность. Этого должно быть достаточно для большинства случаев.

Для повышения производительности вы также можете использовать OpenCV вместе с Intel IPP, который, однако, является несвободным коммерческим продуктом. Если OpenCV обнаружит, что IPP установлен, он будет использовать его там, где это возможно.

В качестве третьего варианта вы можете использовать IPP напрямую. IPP была разработана с высокой производительностью (на архитектурах Intel) в качестве цели. Он оптимизирован для использования инструкций Intel SIMD.

imagemagick довольно популярен.

Не забудьте взглянуть на CxImage - я профессионально использовал его в глобально развернутых графических приложениях для мобильных телефонов, где он отлично работал и полон функций. Проверьте это!

Я не думаю, что видел что-то лучше по функциям и производительности, чем HALCON от MVTec. Он предоставляет всевозможные алгоритмы компьютерного зрения и обработки изображений, а также множество примеров из реальной жизни. Библиотека использует многопоточность, насколько это возможно для алгоритмов, и GPU, когда она доступна. Он очень кроссплатформенный и предоставляет фантастическую среду IDE, которая позволит вам экспортировать ваш прототип кода (алгоритма) на многие языки, включая C, C++, C# и другие.

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

Основная проблема с этим пакетом - цена (глупо высокая), но если вы работаете над проектом, в котором вам не нужно развертывать лицензии времени выполнения (например, SaaS), то это путь, не смотрите дальше, если вам требуется серьезный обработка изображений и компьютерное зрение.

Я поддерживаю vips- бесплатную кроссплатформенную научную библиотеку C/C++ для обработки изображений. Это быстро и хорошо работает на очень больших изображениях.

Я выполнил очень простой тест: загрузил TGB размером 5000 x 5000 пикселей, обрезал по 100 пикселей с каждого края, уменьшил на 10%, увеличил резкость и снова сохранил. По крайней мере, в этом тривиальном тесте vips работает более чем в три раза быстрее, чем все, что я пробовал.

Существует простая и бесплатная кроссплатформенная библиотека обработки изображений с открытым исходным кодом Simd. Как следует из его описания:

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

Алгоритмы оптимизированы с использованием различных расширений ЦП SIMD: SSE, SSE2, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 и AVX-512 для x86/x64, VMX(Altivec) и VSX(Power7) для PowerPC, НЕОН для АРМ.

Есть также VTK и ITK, с огромным количеством разнообразных алгоритмов обработки изображений.

Вы можете посмотреть на IM. Он построен на нескольких платформах и имеет поддержку (модульных) форматов файлов изображений, различных представлений изображений и широкого спектра преобразований и операторов. Также доступен инструмент с графическим интерфейсом IMLab для демонстрации операторов обработки изображений на основе библиотеки IM.

Это также:

  • Framewave на основе AMD Performance Library, которая обеспечивает функции обработки сигналов и изображений
  • GraphicsMagick - многопоточная производная от ImageMagick

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

Мы использовали Accusoft довольно долго, но по очень конкретным причинам мы перешли на LeadTools, который существует только для окон. Accusoft имеет очень понятный и гораздо более четкий интерфейс, чем leadtools. Обе библиотеки очень надежны, и обе утверждают, что читают более или менее все существующие типы файлов. Оба также имеют довольно отзывчивую поддержку.

Другие вопросы по тегам