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

Я ищу библиотеку C++ для обработки изображений. Мне нужна библиотека, чтобы порог фото PPM (цветное фото). Должен ли я написать свой собственный код? Что, вы парни, думаете?

7 ответов

Магия ++ может помочь. Это библиотечная версия ImageMagick.

Все вышеперечисленные варианты должны быть в состоянии сделать то, что вам нужно.

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

При этом: чтение / запись PPM просты, поэтому, если все, что вам нужно, это чтение и пороговое значение, вам определенно следует рассмотреть возможность сделать это самостоятельно. Все сводится к чтению байтов PPM в память, масштабированию в оттенках серого путем усреднения цветовых каналов RGB (обратите внимание, что усреднение каналов RGB - это один, очень простой, метод для оттенков серого; их больше), затем пороговое значение и запись.

Вы можете использовать библиотеку Boost GIL. Это чрезвычайно мощный и универсальный и может действительно удовлетворить все ваши потребности (ну да, это повышение:).

Библиотека Simd Это бесплатная библиотека обработки изображений с открытым исходным кодом, разработанная для программистов на C и C++. Он предоставляет много полезных высокопроизводительных алгоритмов для обработки изображений, таких как: преобразование формата пикселей, масштабирование и фильтрация изображений, извлечение статистической информации из изображений, обнаружение движения, обнаружение объектов (каскады классификаторов HAAR и LBP) и классификация, нейронная сеть.

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

Библиотека Simd имеет C API, а также содержит полезные классы и функции C++ для облегчения доступа к C API. Библиотека поддерживает динамическое и статическое связывание, 32-битные и 64-битные компиляторы Windows и Linux, MSVS, G++ и Clang, проекты MSVS и системы сборки CMake.

PS Я участвую в разработке этого проекта.

Библиотека CImg также является популярным выбором. Он действительно прост в использовании, легок и уже имеет множество базовых и продвинутых операторов обработки изображений.

Очень хорошая библиотека GD2

Эта библиотека имеет привязку к нескольким языкам, включая C (который, конечно, совместим с C++). Легко построить GD как статическую или динамическую библиотеку практически с любым компилятором C++, включая GCC и Visual C++, а также готовые двоичные файлы доступны через Интернет. В отличие от библиотеки изображений Boost, она позволяет загружать / сохранять изображения из / в память, а не только на жесткий диск.

Я хотел бы добавить VIPS в список. Библиотека особенно подходит для машин с большим количеством процессоров. Для сравнения смотрите тесты здесь.

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