Я ищу библиотеку С++ для обработки изображений. Мне нужна библиотека для порога фото PPM (цветная фотография). Должен ли я писать свой собственный код? что вы, ребята, думаете?
Библиотеки обработки изображений С++
Ответ 1
Magick++ может помочь. Это версия библиотеки ImageMagick.
Ответ 2
Вы можете использовать Boost GIL. Он чрезвычайно мощный и универсальный и может действительно удовлетворить все ваши потребности (ну, да, это повышает:).
Ответ 3
Все вышеперечисленные опции должны быть в состоянии сделать то, что вам нужно.
Я хотел бы добавить OpenCV в список. Это быстрая кросс-платформенная библиотека компьютерного зрения с обширной загрузкой, сохранением и обработкой изображений. Он написан на языке C, но имеет прочный интерфейс С++, который я использовал в прошлом.
Сказанное: Чтение/запись PPM прямолинейно, поэтому, если все, что вам нужно, это чтение и порог, вам обязательно нужно рассмотреть делая это самостоятельно. Это сводилось к чтению байтов PPM в память, оттенков серого путем усреднения цветовых каналов RGB (обратите внимание, что усреднение каналов RGB - одно, очень простое - метод для оттенков серого, есть больше), затем пороговое значение и запись.
Ответ 4
Simd Library. Это бесплатная библиотека обработки изображений с открытым исходным кодом, предназначенная для программистов на C и С++. Он предоставляет множество полезных высокопроизводительных алгоритмов для обработки изображений, таких как: преобразование формата пикселей, масштабирование изображения и фильтрация, извлечение статистической информации из изображений, обнаружение движения, обнаружение объектов (каскады классификаторов HAAR и LBP) и классификация нейронной сети.
Алгоритмы оптимизированы с использованием различных расширений SIMD CPU. В частности, библиотека поддерживает следующие расширения процессора: SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 и AVX-512 для x86/x64, VMX (Altivec) и VSX (Power7) для PowerPC, NEON для ARM.
Библиотека Simd имеет API C, а также содержит полезные классы и функции С++ для облегчения доступа к C API. Библиотека поддерживает динамические и статические ссылки, 32-битные и 64-разрядные компиляторы Windows и Linux, MSVS, g++ и Clang, MSVS и CMake.
P.S. Я участвую в разработке этого проекта.
Ответ 5
Библиотека CImg - популярный выбор. Он действительно прост в использовании, облегчен и уже имеет множество базовых и продвинутых операторов обработки изображений.
Ответ 6
Очень хорошая библиотека GD2
Эта библиотека имеет несколько языковых привязок, включая C (которая, конечно же, совместима с С++). Легко построить GD как статическую или динамическую библиотеку с фактически любым компилятором С++, включая GCC и Visual С++, а также предварительно созданные двоичные файлы доступны через Интернет. В отличие от библиотеки изображений Boost, она позволяет загружать/сохранять изображения из/в память, а не только на жесткий диск.
Ответ 7
Я хотел бы добавить VIPS в список. Библиотека особенно подходит для машин со многими процессорами. Для сравнения см. Этапы здесь.